Python 基础语法 – 逻辑运算符

        逻辑运算符是用来做逻辑计算的,就像之前用到的比较运算符 ,每一次比较其实就是一次条件判断,都会得到一个相应的True或者False的值,而逻辑运算符的操作数就是一个用来做条件判断的表达式或者变量

运算符 说明
and
or
not

1. and(逻辑与)

应用场景:

  • 用于连接需要同时成立的两个条件,相当于生活中的并且。
  • 运算规则:

  • 条件1 and 条件2 – 两个 True 结果才是 True,只要一个是 False 结果就是 False
  • '''
    真  and  真 ----》真
    真  and  假 ----》假
    假  and  真 ----》假
    假  and  假 ----》假
    
    规律:一假为假,全真为真
    '''
    # 案例: 判断num是否是一个大于10的偶数
    num = 8
    # num是否大于10: num > 10
    # num是否是偶数: num % 2 == 0
    print('num是否是一个大于10的偶数:', num > 10 and num % 2 == 0)
    
    # 案例:判断num是否能同时被3和7整除
    num = 63
    print('num是否能同时被3和7整除:', num % 3 == 0 and num % 7 == 0)
    # 如果一个数能同时被另外两个数整除,那么这个数一定能被这两个数的最小公倍数整除
    print('num是否能同时被3和7整除:', num % 21 == 0)
    
    
    # 案例:判断num是否是一个在100~200之间的奇数
    num = 202
    print('num是否是一个在100~200之间的奇数:', num % 2 != 0 and 100 < num < 200)

    2. or(逻辑或)

    应用场景:

  • 如果要求两个条件中只要有一个条件成立就行,这个时候就用 or 来连接这两个条件;
  • 相当于生活中的或者
  • 运算规则:

  • 条件 1 or 条件2 – 只要有一个是 True 结果就是 True,两个都是 False 结果才是 False
  • # 案例:判断num是否能被3或者5整除
    num = 9
    print('num是否能被3或者5整除:', num % 3 == 0 or num % 5 == 0)
    
    # 案例:判断year对应的年份是否是闰年
    # 是闰年的条件: 能被4整除但是不能被100整除或者能够被400整除的年
    year = 2024
    print('year对应的年份是否是闰年', (year % 4 == 0 and year % 100 != 0) or year % 400 == 0)
    
    # 案例:判断x保存的数据是否是数字数据
    x = 123.5
    print('x保存的数据是否是数字数据:', type(x) == int or type(x) == float)

    3. not (逻辑非)

    应用场景:

  • 如果有一个条件正向写情况很多很复杂(不好写),反向却很简单的时候,就可以将条件反着写,然后在前面加 not
  • 相当于生活中的或者
  • 运算规则:

  • not 条件
  • # 案例1:写出 age 是否不大于 18 的条件
    age = 8
    print(not age > 18)
    print(age <= 18)
    
    # 案例2:判断 num 是否不是偶数
    num = 181
    print(not num % 2 == 0)
    print(num % 2 != 0)
    
    # 案例3:判断num是否不能同时被3和7整除
    # 正向分析:能被 3 整除但是不能被 7 整除;能被 7 整除但是不能被 3 整除;既不能被 3 整除也不能被 7 整除
    # 方向条件:能同时被 3 和 7 整除
    num = 89
    print(not (num % 3 == 0 and num % 7 == 0))

    重点:短路原则

  • A and B,如果A为False,不需要计算B的值,整个表达式的结果为False
  • A or B,如果A为True,不需要计算B的值,整个表达式的结果为True
  • and和or混合使用
  • 表达式从左往右运算,如果or的左侧为True,则会短路or后面所有的表达式【不管是and还是or连接】,整个表达式的结果为True
  • 表达式从左往右运算,如果and的左侧为False,则短路后面所有的and,直到or出现,接着计算
  • 如果or的左侧为False,或者and的左侧为True,则不能使用短路逻辑判断
  • 注意:

  • 逻辑运算符主要用于进行逻辑判断,所以一般结合 if 语句或 while 循环使用较多
  • 逻辑运算符结合关系运算符使用较多
  • 表示假的数据:0 0.0 "" [] () {} None False等,(只要为空都是False)
  • not xx:不管xx是哪种数据类型,得到的结果肯定是布尔值
  • and和or得到的结果不一定是布尔值,根据具体参与运算的数据而定
  • 作者:小小大胖子3

    物联沃分享整理
    物联沃-IOTWORD物联网 » Python 基础语法 – 逻辑运算符

    发表回复