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

Python中while循环无法终止,请问是什么原因导致的?

问题根源

你编写的while循环判断条件存在语法逻辑错误:
在Python中,x != int(11) or int(22) or int(33)...这类写法不会按你预期的「判断x不等于所有列出的数值」执行,程序会将or连接的每一项单独判断布尔值:非0整数的布尔值恒为True,所以整个判断条件永远返回True,循环自然不会终止。
即使要写多条件不等于判断,正确写法也应该是x != 11 and x != 22 and x != 33...,用and而非or连接,因为只要x等于其中任意一个重复数值,就需要终止循环,只有x不等于所有目标值的时候才需要继续执行循环。

修复方案

方案1:用成员运算符简化判断

不需要写大量重复的不等于判断,直接用in判断x是否在目标值集合中即可,代码更简洁易读:

x = input()
x = int(x)

print(x)
while x not in {11,22,33,44,55,66,77,88,99}:
    x -= 1
    print(x)

方案2:通用逻辑判断(无需手动枚举目标值)

直接通过位运算判断两位数的十位和个位是否相等,适配性更强,不需要手动列全所有重复数值:

x = input()
x = int(x)

print(x)
# x//10取十位数字,x%10取个位数字
while x // 10 != x % 10:
    x -= 1
    print(x)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 18:39:02