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
相关产品推荐
相关产品推荐

