亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何檢查一個名稱是否在 python 中的名稱列表中?

如何檢查一個名稱是否在 python 中的名稱列表中?

小怪獸愛吃肉 2023-09-05 17:14:44
我正在編寫俄勒岡州越野游戲,這是我所擁有的導致問題的代碼,我不知道為什么它會出現問題。我想要做的是,如果他們輸入的名稱包含列表中的單詞,則會將變量 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(),它將把您的輸入解釋為字符串而不是變量名。


查看完整回答
反對 回復 2023-09-05
?
暮色呼如

TA貢獻1853條經驗 獲得超9個贊

在Python 2下,您可以使用raw_input而不是input阻止Python將用戶輸入解釋為Python代碼。

然而,由于 Python 2 已被棄用,我強烈建議不要使用它1。請改用 Python 3,它可以input按預期工作。


1當然,維護遺留產品除外。但這似乎與這里無關。


查看完整回答
反對 回復 2023-09-05
  • 2 回答
  • 0 關注
  • 137 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號