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

请问一下,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 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
  • ¥15 Windows11, backspace, enter, space键失灵