You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python代码input取值恒真导致while无限循环问题求助

问题定位

你的排查结论完全准确,代码存在两个直接导致异常的问题:

  • 接收用户输入的语句后,硬编码了choice = "Yes"赋值逻辑,这行代码会直接覆盖用户输入的所有内容,无论用户输入什么,choice的值都会被强制设为"Yes"
  • while循环内部没有任何修改choice取值的逻辑,循环判断条件choice == "Yes"始终成立,因此会触发无限循环,永远无法执行到else分支的代码。
修正方案

首先删除多余的choice = "Yes"硬赋值行,即可恢复输入判断的基础逻辑。
如果只需要做单次输入判断,可以直接把while换成if分支判断,代码如下:

print("the test game")
choice = input("do you want to play? Yes or No?")

if choice == "Yes":
    print("No you don't..")
else:
    print("Yes you do..")

如果你后续需要实现循环交互逻辑,记得在循环体内部增加修改choice值的逻辑(比如重新获取用户输入),避免条件恒真触发死循环,简单循环示例代码如下:

print("the test game")
choice = input("do you want to play? Yes or No?")

while choice == "Yes":
    print("No you don't..")
    # 循环内重新获取输入,更新choice值
    choice = input("do you want to play again? Yes or No?")
else:
    print("Yes you do..")

补充说明:Python中while配套的else分支,仅在循环正常执行完毕(未被break语句强制中断)时才会触发,后续如果增加循环中断逻辑需要注意这个语法特性。

内容的提问来源于stack exchange,提问作者nnate242

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.01 22:42:29