Python 为什么这个while循环进入无限状态而不是在3次迭代后停止?

Python 为什么这个while循环进入无限状态而不是在3次迭代后停止?,python,python-3.x,Python,Python 3.x,我在试着找出猜测的单词是否正确。经过3次错误的尝试,它进入了无限循环。为什么while循环在第三次迭代后没有结束 secret\u word=“python” guess=“” 尝试=1 猜猜看!=秘密词语: 如果尝试=3,while循环开始执行else子句。问题是循环没有结束,因为用户没有猜到,猜不等于secret_word 一种解决方法是在print('time up!')之后添加break语句。但是,这也会打印出“win”。要防止最后一位,请将print('win')包装在else语句中:

我在试着找出猜测的单词是否正确。经过3次错误的尝试,它进入了无限循环。为什么while循环在第三次迭代后没有结束

secret\u word=“python”
guess=“”
尝试=1
猜猜看!=秘密词语:
如果尝试<3:
猜测=输入(“你的单词:”)
尝试次数+=1
其他:
打印(“时间到了!”)
打印(“赢!”)

一旦
attemp>=3
,while循环开始执行
else
子句。问题是循环没有结束,因为用户没有猜到,猜不等于secret_word

一种解决方法是在
print('time up!')
之后添加
break
语句。但是,这也会打印出
“win”
。要防止最后一位,请将
print('win')
包装在
else
语句中:

print('win')
进入:


如果循环正常退出(条件为false),而不是通过
break
语句或异常退出,则执行while循环中的else条件。

请不要发布代码截图。还有,为什么你的循环会结束?没有什么能阻止它。因为你需要在你的else块中添加break。请下次在您的问题中发布代码,而不是链接。如果您对其他人的已关闭问题的编辑没有使其达到重新打开的级别,则请不要在@timgeb中进行任何编辑。这只会给评论者带来额外的工作。我支持@Broman。尽管编辑本身不必进行审查(编辑具有完全编辑权限),但它确实导致此问题进入重新打开队列。目前的形式不适合重新打开。请用文字说明原始问题中的错误,以及此解决方案解决问题的原因。
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...')
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...')