python问题
在逻辑操作符的运算过程中为什么
0 or False输出得False
False or 0输出得0
在这个里面False相当于0,那如果写成这样:
0 or False输出得0
False or 0输出得False
是对的吗?
布尔类型的True和False能当作整数1和0对待,意义相同,那运算结果中,两者的写法是不是可以互相随意变换。 本帖最后由 isdkz 于 2022-2-5 22:48 编辑
非零即True,零即False
and:左边的表达式的值为False时(即一个为零的值),and逻辑运算表达式的值就是它左边的表达式的值,因为与运算一假则假,自然不用再看右边的表达式了,否则and运算就是右边表达式的值
同理,or: 左边的表达式的值为True时(即一个非零的值),or逻辑运算表达式的值就是它左边的表达式的值,因为或运算一真则真,否则or运算就是右边表达式的值
这是and 和 or 的短路机制
and 和 or 运算的结果是看它两边的表达式的值的
所以并不是说运算时结果是可以随意变换的,逻辑运算的结果是根据短路机制的
因为bool类是int类的子类,可以用 issubclass(bool, int) 来查看
所以也就在数学运算中bool类和其它数据类型进行数学运算时会自动类型上升为它的父类int类
所以自然可以把bool类型当做0和1代入数学运算中 布尔值一般用于执行 if、for、while 条件语句。不要太执着于形式到底该是 False 还是 0,没有意义。主要是看你要用作什么,用在哪里,以下为例子。
例子:
0 可以当作 False
0.0000 可以当作 False
[] 可以当作 False(空列表)
None 可以当作 False
1 可以当作 True
13 可以当作 True
3.145 可以当作 True
可以当作 True
页:
[1]