小怪獸愛(ài)吃肉
2023-09-05 17:14:44
我正在編寫(xiě)俄勒岡州越野游戲,這是我所擁有的導(dǎo)致問(wèn)題的代碼,我不知道為什么它會(huì)出現(xiàn)問(wèn)題。我想要做的是,如果他們輸入的名稱(chēng)包含列表中的單詞,則會(huì)將變量 easter_mode 設(shè)置為 1,如果不這樣做,則會(huì)將 easter_mode 設(shè)置為 0。需要出現(xiàn)在列表中的單詞是:(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)當(dāng)我運(yùn)行完整文件時(shí),我得到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 回答

墨色風(fēng)雨
TA貢獻(xiàn)1853條經(jīng)驗(yàn) 獲得超6個(gè)贊
您將在 Python 2 中收到此錯(cuò)誤。在 Python 2 中,input()
使用輸入的確切值。
在您的示例中,您正在輸入nate
而不是'nate'
。前一個(gè)值是一個(gè)變量名(在代碼中未定義,因此是NameError
),而后者是一個(gè)字符串。
在 Python 3 中,input()
行為如您所假設(shè),并將字符串傳遞給您的代碼。
如果您確定要使用 Python 2,您可以替換input()
為raw_input()
,它將把您的輸入解釋為字符串而不是變量名。

暮色呼如
TA貢獻(xiàn)1853條經(jīng)驗(yàn) 獲得超9個(gè)贊
在Python 2下,您可以使用raw_input
而不是input
阻止Python將用戶(hù)輸入解釋為Python代碼。
然而,由于 Python 2 已被棄用,我強(qiáng)烈建議不要使用它1。請(qǐng)改用 Python 3,它可以input
按預(yù)期工作。
1當(dāng)然,維護(hù)遺留產(chǎn)品除外。但這似乎與這里無(wú)關(guān)。
添加回答
舉報(bào)
0/150
提交
取消