私はPythonで "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で実際に動作しているところです。ここで、入力はあなたが入力したコードとして評価しようとします。スクリプトにprint(sys.version)を追加して、その内容を確認することができます。 – paep3nguin
また、単語は文字列であり、リストの数値インデックスではないので、あなたが試しているので、チャンク[ワード]は機能しません。あなたは代わりに "私のために列挙する(塊)"と "塊[私] = ..."のために行うことができます – paep3nguin