• 17. Python 逻辑运算


    17. 逻辑运算

    1. 什么是逻辑运算

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

    那什么是逻辑运算呢?

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

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

    【定义】

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

    【返回值】

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

    【3种逻辑运算符

    1. and(并且)
    2. or(或者)
    3. not(非)

    在这里插入图片描述

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

    【计算顺序】

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

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

    2. and-逻辑与运算

    【含义】

    and运算符表示“并且”的意思。

    【运算规则】

    只有and左右两边的布尔值均为True时,运算结果才为True。
    其它情况下,运算结果都为False。

    【语法提示】

    逻辑运算符and前后均需要有一个空格

    【记忆口诀】

    两个为真才为真。

    【代码示例】

    print(True  and True)
    print(True  and False)
    print(False and True)
    print(False and False)
    
    • 1
    • 2
    • 3
    • 4

    【终端输出】

    True
    False
    False
    False
    
    • 1
    • 2
    • 3
    • 4

    观察输出结果,发现在进行逻辑与计算时,只有运算符左右两边的布尔值都为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)
    
    • 1
    • 2
    • 3
    • 4

    【终端输出】

    True
    False
    False
    False
    
    • 1
    • 2
    • 3
    • 4

    【答案解析】

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

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

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

    1. 再进行逻辑运算

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

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

    在这里插入图片描述

    3. or-逻辑或运算

    【含义】

    or运算符表示“或者”的意思。

    【运算规则】

    只有or左右两边的布尔值均为False时,运算结果才为False。
    其他情况下运算结果就为True。

    【语法提示】

    逻辑运算符or前后均需要有一个空格

    【记忆口诀】

    两个为假才为假。

    【代码示例】

    print(True  or True)
    print(True  or False)
    print(False or True)
    print(False or False)
    
    • 1
    • 2
    • 3
    • 4

    【终端输出】

    True
    True
    True
    False
    
    • 1
    • 2
    • 3
    • 4

    观察输出结果,发现在进行逻辑或计算时,只有运算符左右两边的布尔值都为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)
    
    • 1
    • 2
    • 3
    • 4

    【终端输出】

    True
    True
    True
    False
    
    • 1
    • 2
    • 3
    • 4

    【答案解析】

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

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

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

    1. 再进行逻辑运算

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

    在这里插入图片描述

    4. not-逻辑非

    【含义】

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

    【运算规则】

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

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

    【语法提示】

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

    【代码示例】

    print(not True)
    print(not False)
    
    • 1
    • 2

    【终端输出】

    False
    True
    
    • 1
    • 2

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

    5. 逻辑运算符的优先级

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

    【体验代码】

    print ( True or True  and  False  != True )
    
    • 1

    【终端输出】

    True
    
    • 1

    在这里插入图片描述

    6. 总结

    在这里插入图片描述

    7. 课后练习

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

    【参考答案】

    a = 5 
    print(a>0 or a<0)
    
    • 1
    • 2

    【终端输出】

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

    【参考答案】

    age = 15 
    print(age >= 17 and age <= 70)
    
    • 1
    • 2

    【终端输出】

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

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

    【参考答案】B

  • 相关阅读:
    新零售SaaS架构:线上商城系统架构设计
    抛硬币有连续x次正面的期望
    JDK8新特性之方法引用
    Python中的列表(清晰易懂)
    【Python】python入门(一):JupyterLab安装、使用
    网络安全-黑客技术-小白学习
    hive笔记(二):数据类型-基本数据类型/集合数据类型/类型转换
    Gitlab CI如何实现安全获取ssh-key拉取依赖项目,打包成品
    矩阵的运算规则
    Python面向对象
  • 原文地址:https://blog.csdn.net/weixin_63986098/article/details/126473580