gpt4 book ai didi

python - 链式 AND 条件给出不明确的结果

转载 作者:太空宇宙 更新时间:2023-11-04 07:35:20 26 4
gpt4 key购买 nike

谁能解释一下?

a = [2,3,4]
b = [5,6,8,9]

print(len(a) > 0)
print(len(b) > 0)
print((len(a) > 0) & len(b) > 0))

输出:

True
True
False

最后的 print 语句不应该返回 True 吗?如果我现在将其重写为:

print((len(a) > 0) & (len(b) > 0))

(注意第二个 AND 条件周围的括号),我得到的输出为 True

这让我很困惑。为什么在括号中包含第二个 AND 条件会改变结果?

最佳答案

& 不是逻辑“与”运算符。它是按位“与”运算符,因此,它具有适合按位运算而不是逻辑运算的优先级。该优先级高于比较的优先级,因此表达式被解析为

((len(a) > 0) & len(b)) > 0

如果您使用逻辑 and,优先级将按您期望的方式工作:

print(len(a) > 0 and len(b) > 0)

关于python - 链式 AND 条件给出不明确的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37401219/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com