L'utilisation de « si » variables dans les listes

voix
0

Je sais que ce sera très précis et peut-être même demandé avant, mais je ne trouve rien qui peut me aider. Je suis en train de créer une sorte de jeu similaire à « Papers, S'il vous plaît » et je avoir des difficultés à utiliser « si » les variables et les listes en même temps.

Ceci est mon code:

import time
import random

#Variables

NAT = [British,American,French,Spanish,Italian]

GEN = [M,F]
if GEN == M:
    FN = [Greg,Harvey,Joseph,Prabesh,John,Joe]
elif GEN == F:
    FN = [Emma,Olivia,Sophia,Ava,Georgia,Nia]

LN = [Sutton,Little,Mayers,Pearce,Fagu,Smith]
D = list(range(1,28))
M = [Jan,Feb,March]
Y = list(range(1900,1975))

#Design

def passport():
    global NAT
    global FN
    global GEN
    print( __________)
    print(|-PASSPORT-|)
    print(|Nationality:,random.choice(NAT))
    print(|Gender:,random.choice(GEN))
    print(|First Name:,random.choice(FN))
    print(|Last Name:,random.choice(LN))
    print(|D.O.B:,random.choice(D),random.choice(M),random.choice(Y))


passport()

Tout fonctionnait bien jusqu'à ce que j'ai ajouté la variable de genre. L'erreur que je reçois est:

Traceback (most recent call last):
  File C:/Users/Greg/AppData/Local/Programs/Python/Python37-32/Games.py, line 60, in <module>
    passport()
  File C:/Users/Greg/AppData/Local/Programs/Python/Python37-32/Games.py, line 55, in passport
    print(|First Name:,random.choice(FN))
NameError: name 'FN' is not defined
>>> 

Toute aide serait très apprécié que je ne sais pas où aller d'ici. Désolé d'être une douleur :)

Créé 07/11/2018 à 20:23
source utilisateur
Dans d'autres langues...                            


3 réponses

voix
0

Vous définissez les éléments suivants:

GEN = ["M","F"]

Par conséquent, ces deux if/elifdéclarations ne (parce que ["M","F"] != "M", ainsi que ["M","F"] != "F"):

if GEN == "M":
    FN = ["Greg","Harvey","Joseph","Prabesh","John","Joe"]
elif GEN == "F":
    FN = ["Emma","Olivia","Sophia","Ava","Georgia","Nia"]

Par conséquent, FNn'est pas défini.

Créé 07/11/2018 à 20:28
source utilisateur

voix
0

GENa la valeur ["M", "F"]au point que l'instruction if fonctionne. Cela signifie GENne correspond pas non plus si le cas de déclaration et ainsi FNest jamais définie.

Vous voulez sans doute une fonction de choisir le prénom de sorte que vous pouvez passer le sexe choisi lors de l'exécution.

Créé 07/11/2018 à 20:28
source utilisateur

voix
-1

Comme les autres disent la variable FNne se définit pas, avant if GEN == "M":qu'il sera bon de définir FNcomme ceci:

FN = []
if GEN == "M":
# And so on ...
Créé 07/11/2018 à 20:36
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more