程序应找出猜中的单词是否正确。经过3次错误尝试后,它会打印邀请循环。为什么第3次迭代后while循环未完成?
secret_word = "python"
guess = ""
attempt = 1
while guess != secret_word:
if attempt < 3:
guess = input("your word: ")
attempt += 1
else:
print("time up!")
print("win!")
答案 0 :(得分:0)
一旦attemp >= 3
,您的while循环将开始执行else
子句。关键是循环没有结束,因为正如用户尚未猜测到的那样,猜测不等于secret_word。
解决该问题的一种方法是在break
之后添加print('time up!')
语句。但是,这也会打印'win'
。为了防止出现最后一点,请将print('win')
包裹在else
语句中,使其变为:
print('win')
进入:
else:
print('win')
如果循环正常退出(条件为假)并且不通过break
语句或异常退出,则执行while循环中的else条件。
答案 1 :(得分:0)
secret_word = 'python'
attempts = 3
for attempt in range(attempts):
guess = input(f'Attempt {attempt+1}: ')
if guess == secret_word:
print('You won!')
break
else:
print('try again...')