前言
在学习python的过程中发现逻辑运算符的使用有些特殊,在此想整理清楚一些
1.关于bool逻辑值
关于 变量/对象 的 bool 逻辑值,通常仅 0、''、[]、()、{}、None、False (及各种空容器) 为 False,其余均为 True。
事实上,Python 逻辑运算符可用于任何类型的表达式,表达式为 bool 类型只是充分不必要条件;同时,逻辑运算的结果可为任意类型,而不一定是 bool 类型。
2. and——"与"
常规来说:
- True and True 返回结果是 True
- True and False 返回结果为 False
- False and False 返回结果为 False 注:将上述 True 和 False 转换为 1 和 0 亦相同!
不常规的运算如:0 and 3 又该返回什么值呢?
返回的结果为:0
3 and 4 又该返回什么值呢?
返回的结果为: 4
在这里,有一个规律可以总结一下:
形如x and y
若第一个(x) 为 False 或者 0 ,则返回的结果分别为 False 和 0 ;
若第一个(x) 为 True 或者 非零数 ,无论第二个值(y) 是 什么 , 则返回的结果都为 第二个值(y)
例子:
0 and 3
True and 3
3 and 4
3. or——"或"
常规来说:
- True or True 返回结果是 True
- True or False 返回结果为 True
- False or False 返回结果为 False 注:将上述 True 和 False 转换为 1 和 0 亦相同!
不常规的运算如:False or 3 又该返回什么值呢?
返回的结果为:3
在这里,有一个规律可以总结一下:
形如x or y
若第一个(x) 为 True 或者 非零数 ,则返回的结果分别为 第一个值(x)
若第一个(x) 为 False 或者 0 , 则返回的结果都为 第二个值(y)
若有形如 x or y or z 的逻辑式,则返回第一个为非零数的值
例子:
3 or 4
False or 3
False or 0 or 4
4. not——"非"
在这里,总结一下规律:
形如 not x
若 x 为 False 或 0,则返回的结果为: True 或 1
若 x 为 True 或 非零数,则返回的结果为: False
例子:
not False
not True
not 1
not 3