为什么Python猜数字代码的while循环输入正确值后无法跳出?
循环无法正常break的原因
- 输入值未更新到guess变量
你在while循环内获取新输入的代码是int(input('wrong. Please make another guess: ')),仅做了类型转换,没有把返回值赋值给guess变量。guess始终保留第一次输入的数值,永远无法和answer相等,因此while guess != answer的条件始终成立,循环不会终止。 - 相等判断的逻辑位置错误
while循环的入口条件就是guess != answer,说明进入循环体时guess必然不等于answer,你把if guess == answer的判断写在循环体内,正常情况下这个判断永远不会触发。就算后续修复了guess赋值的问题,新输入的正确值也要等到下一次判断循环入口条件时才会生效,当前循环体内的判断不会命中。 - break语句顺序错误
即使触发了if判断,你把break写在print('Correct!!!')前面,break执行后会直接跳出循环,后续的正确提示代码永远不会运行。
修复后参考代码
answer = 5 guess = int(input('Please make a wild number guess: ')) count = 1 while guess != answer: count += 1 # 新输入赋值给guess变量 guess = int(input('wrong. Please make another guess: ')) print(f"this is your {count} attempt") # 循环退出时guess必然等于answer,直接打印提示即可 print('Correct!!!')
内容的提问来源于stack exchange,提问作者coredarkness
相关产品推荐
相关产品推荐

