【发布时间】:2017-11-29 23:35:42
【问题描述】:
stackoverflow 的新手,python (python-3) 的新手。目前在edx.org上学习,遇到如下错误。
我创建了一个函数来检查用户输入 str 与答案 str 并返回 True 或 False.
在测试函数时,我创建了一个 while 循环以在第 3 次不成功的尝试时停止。但是,每当尝试不成功时,该函数会打印两次错误消息,而它应该只打印一次。
我通过将函数的返回 Bool 值存储到变量中而不是直接在 whileif 条件中调用该函数来修复了错误/strong> 循环。但是,我想了解两次打印错误消息背后的逻辑。这是两次打印错误消息的原始代码:
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 : ")
【问题讨论】:
标签: python python-3.x