在列表中使用'if'变量

2024-05-03 15:22:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我知道这将是非常具体的,甚至可能问过之前,但我找不到任何可以帮助我与它。我正在尝试创建一种类似于“文件,请”的游戏,并且在同时使用“如果”变量和列表时遇到困难

这是我的密码:

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()

在我加入性别变量之前,一切都很顺利。我得到的错误是:

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
>>> 

任何帮助都将不胜感激,因为我不知道从这里去哪里。很抱歉让你很痛苦:)


Tags: nameimportrangerandomglobalnatlistfirst
3条回答

GEN在if语句运行时具有值["M", "F"]。这意味着GEN与语句case不匹配,因此FN从未定义

您可能希望函数选择名字,以便在运行时传递所选的性别

其他人说变量FN没有定义,在if GEN == "M":之前最好这样定义FN

FN = []
if GEN == "M":
# And so on ...

您可以定义以下内容:

GEN = ["M","F"]

因此,这两个if/elif语句都失败(因为["M","F"] != "M"["M","F"] != "F"):

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

因此,FN是未定义的

相关问题 更多 >