Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
python(布尔类型)和(整数)将成为整数类型_Python - Fatal编程技术网

python(布尔类型)和(整数)将成为整数类型

python(布尔类型)和(整数)将成为整数类型,python,Python,我发现(布尔类型)和(整数)将在Python3中变成整数。这行代码中发生了什么转换 flag=True print(flag and 2) 输出:2和运算符(以及所有其他布尔运算符)的值将始终是最后计算的值。运算符和在计算结果为False时停止计算,因此计算结果为False的操作数将成为计算值。相反,如果计算结果为True,则计算结果为True的操作数将成为计算值 >>> False and 2 False >>> True and 3 3 >>

我发现(布尔类型)和(整数)将在Python3中变成整数。这行代码中发生了什么转换

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年前)。