安迪Python

V1

2022/08/22阅读:14主题:默认主题

17. Python 逻辑运算

17. 逻辑运算

1. 什么是逻辑运算

在布尔类型章节我们说过数学家乔治.布尔在符号逻辑运算中做出过特殊贡献,很多计算机语言中将逻辑运算称为布尔运算,并将其结果称为布尔值。

那什么是逻辑运算呢?

举例说明:假设18周岁以上并且70周岁以下的公民可以报考驾照。

那报考驾照需要同时满足2个条件:
一是age >= 18
二是age <= 70

【定义】

类似这样的,对多个条件进行判断的运算就叫逻辑运算。

【返回值】

逻辑运算的结果是布尔类型的数据,即True或False。

【3种逻辑运算符】

  1. and(并且)
  2. or(或者)
  3. not(非)
1.三种逻辑运算符
1.三种逻辑运算符

【备注】上述图片来自夜曲编程。

【计算顺序】

逻辑运算也是一种数学运算,只要是数学运算就有计算顺序。
例如我们常用的先乘除后加减就是一种计算顺序。

在逻辑运算中,优先计算逻辑运算符左右两边的表达式,然后再进行逻辑运算。

2. and-逻辑与运算

【含义】

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

【答案解析】

在逻辑运算中,优先计算逻辑运算符左右两边的表达式,然后再进行逻辑运算。
因此我们要先计算大于和小于的比较运算。

  1. 先计算左边两边的表达式

第一行代码中:
左边表达式 2 > 0成立,布尔值为True。
右边表达式 5 > 0成立,布尔值为True。

  1. 再进行逻辑运算

True and True ,左右两边都为真,则第一行代码逻辑运算结果为True。

在逻辑与计算中,只有两边的值都为True,结果才为True。 2.逻辑与

3. or-逻辑或运算

【含义】

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

【答案解析】

在逻辑运算中,优先计算逻辑运算符左右两边的表达式,然后再进行逻辑运算。
因此我们要先计算大于和小于的比较运算。

  1. 先计算左边两边的表达式

第一行代码中:
左边表达式 2 > 0成立,布尔值为True。
右边表达式 5 > 0成立,布尔值为True。

  1. 再进行逻辑运算

True or True ,左右两边都为真,则第一行代码逻辑运算结果为False。
在逻辑与或计算中,只有两边的值都为False,结果才为False。

3.逻辑或
3.逻辑或

4. not-逻辑非

【含义】

not运算符表示“非”的意思。

【运算规则】

not运算符只运算一个布尔值,表示取这个布尔值的反值。

not True 运行结果是False。
not False运行结果是True。

【语法提示】

逻辑运算符not后需要有一个空格

【代码示例】

print(not True)
print(not False)

【终端输出】

False
True

进行逻辑非的计算时,运算符右边的布尔值为True,则输出结果为false,右边的布尔值为false,则输出结果为True。

5. 逻辑运算符的优先级

1.比较运算符优先于逻辑运算符。
2.逻辑运算符中not >and >or,即先计算not,再计算and,最后计算or

【体验代码】

print ( True or True  and  False  != True )

【终端输出】

True
4.逻辑运算符的优先顺序
4.逻辑运算符的优先顺序

6. 总结

5.运算
5.运算

7. 课后练习

  1. 编写代码:定义变量a = 5, 输出“a大于0或者a小于0”的布尔值:

【参考答案】

a = 5 
print(a>0 or a<0)

【终端输出】

True
  1. 编写代码:小明今年15岁,用逻辑运算判断小明今年能否学驾照:

【参考答案】

age = 15 
print(age >= 17 and age <= 70)

【终端输出】

False
  1. 以下哪一个选项运算的结果是False?

A. not (5 == 1)
B. not (5 != 1)
C. not (5 < 1)

【参考答案】B

分类:

后端

标签:

Python

作者介绍

安迪Python
V1