whtheima2019 2023-02-16 20:18 采纳率: 100%
浏览 36
已结题

简单表达式运算结果的疑惑

学习运算符时遇到一个这样的表达式:

img

这两个表达式按运算符优先级进行运算,按True==1和False==0,结果应该都是True吧,可是这里怎么会不同呢?
有人给咱解解惑吗?谢谢

  • 写回答

3条回答 默认 最新

  • 神奇的代码在哪里 2023-02-17 14:10
    关注

    解析:
    一、我们先把两个不同结果的表达式写出来:

    5+2>3==2**0
    (5+2>3)==2**0
    

    二、然后进行简化,由于**的优先级比==高所以以上两个表达式可以等价为:

    5+2>3==1
    (5+2>3)==1
    

    三、对于第一个表达式,+号优先级最高,同理表达式2括号中的表达式也是+号优先级较高,所以又可以等价为:

    7>3==1
    (7>3)==1
    

    好了到这里,运行上面的表达式,结果如下:

    img


    所以博主的问题就变为7>3==1和(7>3)==1为什么不是都是True


    经过查阅资料,发现Python支持连续的比较运算符:a > b == c,但它其实是 a > b and b == c 的简略写法,而不是表示先进行计算 a > b ,然后用结果判断是否等于c,也不是判断a是否大于 b == c 的结果。


    所以7>3==1应为7>3 and 3==1 为False。

    参考阅读:https://blog.csdn.net/weixin_39793434/article/details/110025611

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

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 2月18日
  • 已采纳回答 2月18日
  • 创建了问题 2月16日

悬赏问题

  • ¥15 ansys fluent计算闪退
  • ¥15 有关wireshark抓包的问题
  • ¥15 需要写计算过程,不要写代码,求解答,数据都在图上
  • ¥15 向数据表用newid方式插入GUID问题
  • ¥15 multisim电路设计
  • ¥20 用keil,写代码解决两个问题,用库函数
  • ¥50 ID中开关量采样信号通道、以及程序流程的设计
  • ¥15 U-Mamba/nnunetv2固定随机数种子
  • ¥15 vba使用jmail发送邮件正文里面怎么加图片
  • ¥15 vb6.0如何向数据库中添加自动生成的字段数据。