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

Python中if多值不等判断逻辑错误致循环无法退出的解决方法

问题分析与解决方案

你的代码陷入死循环的核心原因是条件判断的逻辑错误:

原代码中的if n != 5 or 10 or 25写法完全不符合Python的布尔运算规则。在Python中,or连接的是独立的布尔表达式,10和25作为非零数值,会被直接判定为True。因此这个条件等价于(n !=5) or True or True,无论输入什么值,整个表达式永远为True,导致循环一直执行continue,无法退出。

正确的修改方式

有两种简洁且正确的写法可以实现需求:

方式1:使用not in判断(推荐)

利用元组存储合法值,用in运算符判断输入是否在合法范围内,代码更简洁易读:

def get_paid(y):
    while True:
        n = int(input("Insert Coin: "))
        if n not in (5, 10, 25):
            print(f"Amount Due: {y}")
            continue
        break
    return n

方式2:修正逻辑运算符

用and连接多个不等于的判断,确保输入同时不满足三个合法值时才提示重新输入:

def get_paid(y):
    while True:
        n = int(input("Insert Coin: "))
        if n != 5 and n != 10 and n != 25:
            print(f"Amount Due: {y}")
            continue
        break
    return n

两种写法都能实现:输入5、10、25时退出循环,其他值则重复提示用户输入。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 12:30:58