2016-12-07 1 views
0
#TODO: QUESTION 1 
    num = random.randint(1, 100) 
    print(num) 
    # Male or Female probabilities = 35% 
    if num > 0 and num <= 18: 
     femaleCheck(People) 
     printPeopleList(People) 
    if num > 18 and num <= 35: 
     maleCheck(People) 
     printPeopleList(People) 
    # Wearing a T-Shirt probabilities = 15% 
    if num > 35 and num <= 50: 
     tShirtCheck(People) 
     printPeopleList(People) 
    #Eye Color probabilities 25% 
    if num > 50 and num <= 63: 
     eyeColorBrownCheck(People) 
     printPeopleList(People) 
    if num > 63 and num <= 75: 
     eyeColorBlueCheck(People) 
     printPeopleList(People) 
    #Showing Teeth probabilities 25% 
    if num > 75 and num <= 100: 
     showingTeethCheck(People) 
     printPeopleList(People) 

Voici une petite partie du code pour deviner quel jeu je crée. Comme il est actuellement implémenté, il choisit un nombre aléatoire dans une liste et demande au numéro correspondant d'exécuter une fonction. Une fois la question 1 posée, j'aimerais qu'elle pose la question 2 parmi les options disponibles restantes. La question 3 inclura les 2 options restantes et introduira une nouvelle fonction à poser. J'ai du mal à trouver la méthode qui serait la plus efficace; Je sais que je pourrais juste mettre chaque question en retrait, mais ce serait terriblement brouillon et difficile à lire. Y a-t-il une méthode que je pourrais utiliser pour poser les questions suivantes de manière simpliste? Potentiellement supprimer cette plage de nombre entier aléatoire?Python, Poser des questions sans répétition

+0

Quelle version de Python utilisez-vous? – joeb

+0

Le code et votre explication ne sont pas vraiment clairs sur ce que vous essayez de faire et sur votre problème actuel. – polku

+0

@joeb Je l'utilise sur plusieurs appareils généralement un assortiment de 3.4 et 3.6 – zSynonym

Répondre

3

Si vous utilisez 3.6, vous pouvez utiliser random.choices avec l'argument mot-clé weights pour vos fonctions.

checkFunction = random.choices([femaleCheck, maleCheck, tShirtCheck, ...], weights=[35, 15, 25, ...]) 
checkFunction(People) 
printPeopleList(People) 

Sinon, consultez this answe r sur la façon de mettre en œuvre quelque chose de similaire.