我正在使用Python中的「自動化無聊事物」一書來編寫MadLib程序。我確定我的程序正在運行,但當用戶需要輸入輸入時,我一直在收到這個奇怪的「NameError」。Python Madlib自動化無聊東西
這是我的代碼。我的計劃是在看到消息已成功加入後將內容寫入文件。
#!/usr/local/bin/python3
import sys
'''
Create a Mad Libs program that reads in text files and lets the user add
their own text anywhere the word ADJECTIVE, NOUN, ADVERB, or VERB
appears in the text file.
'''
breaks = ["noun", "verb", "adverb", "adjective"]
'''Program Usage and Exit Case'''
if len(sys.argv) < 2:
print("Usage: ./mad.py <FileName>")
sys.exit()
'''Read in File and Store Contents in Array'''
file = open(sys.argv[1])
chunk = str(file.read()).split()
****'''Search through text for keywords'''
for word in chunk:
if word.lower() in breaks:
chunk[word] = input("Enter %s: " %word)****
newMessage = " ".join(chunk)
print(newMessage)
file.close()
您確定代碼在Python 3中運行?可能發生的事情是它實際上在Python 2中運行,在Python 2中,輸入將嘗試按代碼評估您輸入的內容。您可以嘗試向腳本添加一個打印(sys.version)並查看它打印的內容。 – paep3nguin
此外,我敢肯定,塊[單詞]將無法正常工作,因爲你正在嘗試,因爲單詞是一個字符串,而不是列表的數字索引。你可以改爲「爲我,在枚舉(塊)」和「塊[我] = ...」 – paep3nguin