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

Python中'or'运算符误用引发的列表成员判断异常问题

问题原因分析与解决方案

没错,你确实误用了or运算符,这就是代码不符合预期的核心原因!

错误逻辑拆解

你写的判断条件if 0 or 100 in output:,在Python中会因为运算符优先级被解析成:

if (0) or (100 in output):

在布尔判断规则里,数字0会被视为False,所以整个条件等价于只判断100 in output——这就解释了为什么只有列表包含100时才打印yes,包含0时完全不触发。

正确写法

要实现“列表包含0或100就打印yes”的需求,你需要明确对两个值分别做in判断:

if 0 in output or 100 in output:
    print('yes')

如果后续需要判断的数值更多,用any()函数会更简洁优雅:

if any(num in output for num in (0, 100)):
    print('yes')

修正后的完整代码

import random
num_list = []
for i in range(0, 100 + 1):
    num_list.append(i)
for i in range(50):
    output = random.sample(num_list, 3)
    print(output)
    # 修正后的条件判断
    if 0 in output or 100 in output:
        print('yes')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 19:22:41