Das ist mein Programm.Warum erscheint ein Namensfehler?
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")
Nach dem Ausführen dieses Programms dieser Fehler angezeigt wird, Bitte geben Sie einen Satz: Hallo mein Name ist jeff [ 'hallo', 'mein', 'Name', 'ist', 'jeff'] Bitte Geben Sie ein Wort in den folgenden Satz ein: 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
Was ist hier falsch?
Das 'while' Schleife wahrscheinlich eine' for' Schleife sein soll. Indem Sie dies in einer while-Schleife tun, prüfen Sie, ob der Inhalt der Variablen "i" in der Liste enthalten ist, die von der Funktion "range" generiert wird. Dabei wird festgestellt, dass "i" nicht definiert ist, also der Fehler. – Shadow
Das ist genau das Problem, @Shadow. 'for' Schleifen definieren eine neue Variable. 'while' Schleifen evaluieren eine Bedingung in ihrem Umfang:' i' müsste bereits existieren. Und semantisch, "während ich in Reichweite (len (Wörter))" ist nicht was Jeff will. –
Übrigens, Jeff, schauen Sie sich die eingebaute 'enumerate' Funktion an. –