Prcc321 2021-08-08 16:58 采纳率: 88.9%
浏览 1083
已结题

请问一下,python中 if not (a or b) 是什么意思

请问一下,python中 if not (a or b) 和 if not (a and b) 是什么意思

l1 = []
l2 = []
l3 = []

if not (l1 or l2 or l3):
    print('pass_1')

if not (l1 and l2 and l3):
    print('pass_2')
  • 写回答

3条回答 默认 最新

  • 八云黧 2021-08-08 17:13
    关注

    1.python中任何一个变量都有真值属性,可以直接用于if和while的条件判断,其中None,False,任何数值类型的零,例如:0、0.0、0j,任何空序列,例如:”、()、[],任何空映射,例如:{}会被认为是False值,其他都是True值


    2.python中有三种常用的逻辑运算not、and和or,这三者具体的运算方式如下:

    1. not a,如果a具有True值,则返回False;反之,如果a具有False值,则返回True
    2. a and b 如果a、b都为True值时返回b,否则返回a、b中第一个为False值的变量
    3. a or b 如果a、b都为False值时返回b,否则返回a、b中第一个为True值的变量

    3.任何语言涉及到多个运算符的运算顺序时,都要参考它们的运算符优先级和结合性。下图是python的运算符优先级和结合性表

    img
    参考本题分析,if not (l1 or l2 or l3):一行中not (l1 or l2 or l3)是一个完整的用于if判断的表达式
    根据优先级,小括号最先运算,所以先看(l1 or l2 or l3)这部分,
    多个or运算,要参考结合性,由上图可知or运算是左结合的,所以先算l1 or l2,根据第2点第3小点,该表达式值为l2的值
    表达式由l1 or l2 or l3变为l2 or l3,再计算得表达式值为l3的值
    所以原表达式not (l1 or l2 or l3)变为not l3,所以该值为True

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 9月20日
  • 已采纳回答 9月12日
  • 创建了问题 8月8日

悬赏问题

  • ¥15 关于cpci总线的几个问题,有点迷糊
  • ¥15 乳腺癌数据集 相关矩阵 特征选择
  • ¥15 我的游戏账号被盗取,请问我该怎么做
  • ¥15 通关usb3.0.push文件,导致usb频繁断连
  • ¥15 有没有能解决微信公众号,只能实时拍照,没有选择相册上传功能,我不懂任何技术,,有没有给我发个软件就能搞定的方法
  • ¥15 Pythontxt文本可视化
  • ¥15 如何基于Ryu环境下使用scapy包进行数据包构造
  • ¥15 springboot国际化
  • ¥15 搭建QEMU环境运行OP-TEE出现错误
  • ¥15 Minifilter文件保护