あなたは間違ってインデントを持っている - 今では最初の行に異なるテキストを検索し、自動的にそれが他の行をチェックしないためnaughty
を追加します。
for/else/break
の構造を使用する必要があります。 else
はfor
と同じ字下げをしています。
プログラムがnaughty
の場合は、for
ループを残すのにbreak
を使用し、else
をスキップします。 for
がnaughty
を見つけられない場合は、break
を使用せずにelse
を実行します。
with open("myWords.txt", "r+") as a:
word = "naughty"
for line in a:
if word == line.strip():
print("found")
break
else: # no break
a.write(word + "\n")
print("writing:", word)
a.close()
それはbreak` `の後に何を入れても意味がありません
with open("myWords.txt", "r+") as a:
word = "naughty"
found = False
for line in a:
if word == line.strip():
print("found")
found = True
break
if not found:
a.write(word + "\n")
print("writing:", word)
a.close()
に似ています。あなたは '休憩 'の前に入れなければなりません – furas
@furasありがとう。編集されました。私もその前にそれを試してみましたが、うまくいきません。 – Amar
あなたは間違っていたと思います。 'if/else'ではなく' for/else' construnctionが必要です - したがって 'else'は' for'の下になければなりません – furas