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

请问一下,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 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测