我正在编写俄勒冈州越野游戏,这是我所拥有的导致问题的代码,我不知道为什么它会出现问题。我想要做的是,如果他们输入的名称包含列表中的单词,则会将变量 easter_mode 设置为 1,如果不这样做,则会将 easter_mode 设置为 0。需要出现在列表中的单词是:(Sturtz,sturtz,Nate,nate)谢谢#asking nameplayer_name = input('What is your name:')while len(player_name) >= 0: if len(player_name) > 1: print("Weclome" + str(player_name)) print('Which mode do you want to play?') mode_choice = input('(easy) More modes comming soon:') break if len(player_name) == 1: player_name_choice = input(str(player_name)+"? Are you kidding me? Only one letter? You might regreat it (Y/N):") if player_name_choice == "y" or player_name_choice == "Y": print("Ok Your Choice!!...") mode_choice = 'easter' break if player_name_choice == "n" or player_name_choice == "N": player_name = input('What is your name:') else: print("You do not type anything, try again") player_name = input('What is your name:')#Check Easter Egg Nameseaster_names = ["nate sturtz", "Nate Sturtz", "Nate", "nate", "Sturtz", "sturtz"]if player_name in easter_names: easter_mode = 1else: easter_mode = 0#easter eggs for nameif easter_mode == 1: year_set = 2005 mode_choice = 'easter'else: year_set = input('Enter a year whatever you like:') if year_set.isdigit(): return_num = 0 else: return_num = 1 while return_num == 1: print('Error,please try again!') year_set = input('Enter a year whatever you like:') if year_set.isdigit(): return_num = 0 else: return_num = 1 year_set = int(year_set)当我运行完整文件时,我得到Traceback (most recent call last): File "Oregon.py", line 64, in <module> player_name = input('What is your name:') File "<string>", line 1, in <module>NameError: name 'nate' is not defined您可以在 Github 上查看完整代码https://raw.githubusercontent.com/nsturtz/Oregon-Trail/master/Oregon.py
2 回答
墨色风雨
TA贡献1853条经验 获得超6个赞
您将在 Python 2 中收到此错误。在 Python 2 中,input()
使用输入的确切值。
在您的示例中,您正在输入nate
而不是'nate'
。前一个值是一个变量名(在代码中未定义,因此是NameError
),而后者是一个字符串。
在 Python 3 中,input()
行为如您所假设,并将字符串传递给您的代码。
如果您确定要使用 Python 2,您可以替换input()
为raw_input()
,它将把您的输入解释为字符串而不是变量名。
暮色呼如
TA贡献1853条经验 获得超9个赞
在Python 2下,您可以使用raw_input
而不是input
阻止Python将用户输入解释为Python代码。
然而,由于 Python 2 已被弃用,我强烈建议不要使用它1。请改用 Python 3,它可以input
按预期工作。
1当然,维护遗留产品除外。但这似乎与这里无关。
添加回答
举报
0/150
提交
取消