python(布尔类型)和(整数)将成为整数类型
我发现(布尔类型)和(整数)将在Python3中变成整数。这行代码中发生了什么转换python(布尔类型)和(整数)将成为整数类型,python,Python,我发现(布尔类型)和(整数)将在Python3中变成整数。这行代码中发生了什么转换 flag=True print(flag and 2) 输出:2和运算符(以及所有其他布尔运算符)的值将始终是最后计算的值。运算符和在计算结果为False时停止计算,因此计算结果为False的操作数将成为计算值。相反,如果计算结果为True,则计算结果为True的操作数将成为计算值 >>> False and 2 False >>> True and 3 3 >>
flag=True
print(flag and 2)
输出:2和运算符(以及所有其他布尔运算符)的值将始终是最后计算的值。运算符
和
在计算结果为False
时停止计算,因此计算结果为False
的操作数将成为计算值。相反,如果计算结果为True
,则计算结果为True
的操作数将成为计算值
>>> False and 2
False
>>> True and 3
3
>>> 1 and False and 3
False
>>> 1 and 0 and 3
0
也许你会发现这很有用。如果“flag”为false,则输出将为false。。。这是因为“and”表达式的右侧部分只有在左侧部分是真实的情况下才被计算。。。尝试以下操作:flag=True打印(2和flag)输出:True换句话说,and运算符返回它所操作的两个值之一。如果左侧为falsy,则没有必要评估右侧部分,因此,返回左侧部分。如果左侧部分是truty,则返回右侧部分,因为表达式仍然有可能是truthy
bool
早在Python 3发布之前就已经是int
的子类了(Python 3的发布时间是近10年前)。