これは私のプログラムです。名前エラーが表示されるのはなぜですか?
sentence = raw_input("Please type a sentence:")
while "." in sentence or "," in sentence or ":" in sentence or "?" in
sentence or ";" in sentence:
print("Please write another sentence without punctutation ")
sentence = input("Please write a sentence: ")
else:
words = sentence.split()
print(words)
specificword = raw_input("Please type a word to find in the sentence: ")
while i in range(len(words)):
if specificword == words[i]:
print (specificword, "found in position ", i + 1)
else:
print("Word not found in the sentence")
specificword = input("Please type another word to find in the sentence")
このエラーが表示されます。このプログラムを実行した後、 文を入力してください:こんにちは私の名前はジェフ ある[「こんにちは」、「私」、「名前が」、「で」、「ジェフ」] してください文章で検索する単語を入力してください:jeff
Traceback (most recent call last):
File "E:/school/GCSE Computing/A453/Task 1/code test1.py", line 9, in <module>
while i in range(len(words)):
NameError: name 'i' is not defined
ここで何が間違っていますか?
:これにより
を。これをwhileループで実行すると、変数 'i'の内容が' range'関数によって生成されたリスト内に含まれているかどうかを確認することになります。これを行うと、 'i'が定義されていないことがわかります。つまり、エラーです。 – Shadow
これはまさに問題の@shadowです。 'for 'ループは新しい変数を定義します。 'while'ループは、スコープ内の条件を評価します。' i'はすでに存在する必要があります。そして意味的には、「私が範囲内にいる間(len(単語))は、ジェフが望むものではありません。 –
ちなみに、Jeffは、組み込みの 'enumerate'関数を調べています。 –