新しいpython(python-3)とstackoverflowの新機能です。現在edx.orgで学習し、次のエラーが発生しました。 なぜこのエラーメッセージが2回印刷されますか?
は、私は答え STRに対してユーザ入力 STRをチェックし、 真またはFalse を返す関数を作成しました。この機能をテストするとき、私はを作成しましたが、ループは3回目の失敗した試みで停止します。ただし、失敗した試行があるたびに、関数は一度だけ印刷する必要がある場合、エラーメッセージを2回印刷します。
Iを変数に関数の戻りブール値を格納するのではなく whileループ内かの状態に直接関数を呼び出してエラーを修正しました。しかし、エラーメッセージの印刷の背後にあるロジックを2回理解したいと思います。ここでは二回、エラーメッセージを出力し、元のコードは次のとおりです。
def letter_guess(letter, guess):
if len(guess) == 1 and guess.isalpha() and guess < letter:
print(guess,"is lower than the answer. Try again.\n")
return False
elif len(guess) == 1 and guess.isalpha() and guess > letter:
print(guess,"is higher than the answer. Try again.\n")
return False
elif len(guess) == 1 and guess.isalpha() and guess == letter:
print("Correct answer!")
return True
else:
print("Please only enter one alphabet for the letter. Try again.\n")
return False
answer2 = "m"
guess2 = input("Please enter a single alphabet : ")
i = 0
while i < 3:
if letter_guess(answer2, guess2):
break
elif letter_guess(answer2, guess2) == False and i == 2:
print("You have reached 3 guesses. Game over.")
break
else:
i += 1
guess2 = input("Please guess again : ")
条件が満たされないとき、コードは 'if'と' elif'を通って実行されるので、 'else'で終わる前に2回実行されますか?もしそうなら、私は今理解する。ありがとうございました! –