Python逻辑运算符有 and 、or、 not三个,用于测试两个布尔表达式,它的返回值也是布尔类型True或者False。
and运算符
and
运算符表示两个布尔表达式同时为True,那么返回值则为True,其中有一个不是True,则返回值Flase,看下面的例子。
#!/usr/bin/python
# coding=utf-8
print(2>1 and 3>2) # True 两个都为True
print(2<1 and 3>2) # False 第一个为False,第二个为True
print(2>1 and 3<2) # False 第一个为True,第二个为False
输出:True
False
False
False
False
从上面的结果可以知道,and表达式两边都为True的时候返回值为True。
or运算符
or
运算符只要有一个为True,那么返回值为True,换句话说只有两个同时为False,返回值才为False,看下面的or运算符的例子:
#!/usr/bin/python
# coding=utf-8
print(2>1 or 3>2) # True 两个都为True
print(2<1 or 3>2) # True 第一个为False,第二个为True
print(2>1 or 3<2) # True 第一个为True,第二个为False
print(2<1 or 3<2) # True 两个都为False
输出:True
True
True
False
True
True
False
从上面的结果可知,Python or 运算符只有当两个表达式都为False时,返回值才为False。
注意:对于or运算符需要知道or运算符的左边为True的时候不再进行右边表达式的判断,因为or的原则是其中有一个为True,返回值为True,看下面的例子。
#!/usr/bin/python
# coding=utf-8
def test():
print("这里代码会执行吗?")
return True
print(2>1 or test()) # 第一个表达式为True,第二个表达式不再执行输出
输出:
True
从输出结果验证了刚才的结论。
not运算符
not是逻辑非运算符,意思是布尔值取反,什么意思呢?
True变为False,False变为True,这个和其他编程语言的感叹号类似。
#!/usr/bin/python
# coding=utf-8
print(not True)
print(not False)
print(not 1>2)
print(not 2>1)
输出:False
True
True
False
True
True
False
这个较为简单不再做过多的解释。