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

 从上面的结果可以知道,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

 从上面的结果可知,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

 这个较为简单不再做过多的解释。