在布尔类型章节我们说过数学家乔治.布尔在符号逻辑运算中做出过特殊贡献,很多计算机语言中将逻辑运算称为布尔运算,并将其结果称为布尔值。
那什么是逻辑运算呢?
举例说明:假设18周岁以上并且70周岁以下的公民可以报考驾照。
那报考驾照需要同时满足2个条件:
一是age >= 18
二是age <= 70
【定义】
类似这样的,对多个条件进行判断的运算就叫逻辑运算。
【返回值】
逻辑运算的结果是布尔类型的数据,即True或False。
【3种逻辑运算符】
【备注】上述图片来自夜曲编程。
【计算顺序】
逻辑运算也是一种数学运算,只要是数学运算就有计算顺序。
例如我们常用的先乘除后加减就是一种计算顺序。
在逻辑运算中,优先计算逻辑运算符左右两边的表达式,然后再进行逻辑运算。
【含义】
and运算符表示“并且”的意思。
【运算规则】
只有and
左右两边的布尔值均为True时,运算结果才为True。
其它情况下,运算结果都为False。
【语法提示】
逻辑运算符and前后均需要有一个空格
【记忆口诀】
两个为真才为真。
【代码示例】
print(True and True)
print(True and False)
print(False and True)
print(False and False)
【终端输出】
True
False
False
False
观察输出结果,发现在进行逻辑与计算时,只有运算符左右两边的布尔值都为True,结果才为True。
【课堂练习】
猜一猜下面的代码的运行结果:
print(2>0 and 5>0)
print(2>0 and 5<0)
print(2<0 and 5>0)
print(2<0 and 5<0)
【终端输出】
True
False
False
False
【答案解析】
在逻辑运算中,优先计算逻辑运算符左右两边的表达式,然后再进行逻辑运算。
因此我们要先计算大于和小于的比较运算。
第一行代码中:
左边表达式 2 > 0
成立,布尔值为True。
右边表达式 5 > 0
成立,布尔值为True。
True and True
,左右两边都为真,则第一行代码逻辑运算结果为True。
在逻辑与计算中,只有两边的值都为True,结果才为True。
【含义】
or运算符表示“或者”的意思。
【运算规则】
只有or
左右两边的布尔值均为False时,运算结果才为False。
其他情况下运算结果就为True。
【语法提示】
逻辑运算符or前后均需要有一个空格
【记忆口诀】
两个为假才为假。
【代码示例】
print(True or True)
print(True or False)
print(False or True)
print(False or False)
【终端输出】
True
True
True
False
观察输出结果,发现在进行逻辑或计算时,只有运算符左右两边的布尔值都为False,结果才为False。
【课堂练习】
print(2>0 or 5>0)
print(2>0 or 5<0)
print(2<0 or 5>0)
print(2<0 or 5<0)
【终端输出】
True
True
True
False
【答案解析】
在逻辑运算中,优先计算逻辑运算符左右两边的表达式,然后再进行逻辑运算。
因此我们要先计算大于和小于的比较运算。
第一行代码中:
左边表达式 2 > 0
成立,布尔值为True。
右边表达式 5 > 0
成立,布尔值为True。
True or True
,左右两边都为真,则第一行代码逻辑运算结果为False。
在逻辑与或计算中,只有两边的值都为False,结果才为False。
【含义】
not运算符表示“非”的意思。
【运算规则】
not
运算符只运算一个布尔值,表示取这个布尔值的反值。
not True
运行结果是False。
not False
运行结果是True。
【语法提示】
逻辑运算符not后需要有一个空格
【代码示例】
print(not True)
print(not False)
【终端输出】
False
True
进行逻辑非的计算时,运算符右边的布尔值为True,则输出结果为false,右边的布尔值为false,则输出结果为True。
1.比较运算符优先于逻辑运算符。
2.逻辑运算符中not >and >or
,即先计算not
,再计算and
,最后计算or
。
【体验代码】
print ( True or True and False != True )
【终端输出】
True
【参考答案】
a = 5
print(a>0 or a<0)
【终端输出】
True
【参考答案】
age = 15
print(age >= 17 and age <= 70)
【终端输出】
False
A. not (5 == 1)
B. not (5 != 1)
C. not (5 < 1)
【参考答案】B