【问题标题】:In python, how are Boolean values & used? [duplicate]在python中,如何使用布尔值和? [复制]
【发布时间】:2019-04-01 13:11:48
【问题描述】:

print(1!=1 & 1!=1) print(1!=1 & 2!=2) 为什么两者返回不同的值?

【问题讨论】:

标签: python


【解决方案1】:

&precedence!= 高,所以你的语句相当于

print(1!=(1 & 1)!=1)
print(1!=(1 & 2)!=2)

1&1 是 1,1&2 是 0,* 所以这些等价于

print(1!=1!=1)
print(1!=0!=2)

因为!=支持chaining,所以这些等价于

print((1!=1) and (1!=1))
print((1!=0) and (0!=2))

相当于

print(False and False)
print(True and True)

相当于

print(False)
print(True)

(*如果您在想“这很奇怪,我认为在布尔上下文中评估时 1 和 2 都是 True。不应该将它们和-ing 一起评估为 True 吗?”,只有当您使用布尔 AND 运算符 and 而不是按位 AND 运算符 &。)

【讨论】:

    猜你喜欢
    • 2010-10-11
    • 1970-01-01
    • 2012-04-05
    • 2010-12-17
    • 1970-01-01
    • 2013-11-04
    • 2023-03-11
    • 2019-11-25
    • 1970-01-01
    相关资源
    最近更新 更多