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

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

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

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 keil的map文件中Image component sizes各项意思
  • ¥30 BC260Y用MQTT向阿里云发布主题消息一直错误
  • ¥20 求个正点原子stm32f407开发版的贪吃蛇游戏
  • ¥15 划分vlan后,链路不通了?
  • ¥20 求各位懂行的人,注册表能不能看到usb使用得具体信息,干了什么,传输了什么数据
  • ¥15 Vue3 大型图片数据拖动排序
  • ¥15 Centos / PETGEM
  • ¥15 划分vlan后不通了
  • ¥20 用雷电模拟器安装百达屋apk一直闪退
  • ¥15 算能科技20240506咨询(拒绝大模型回答)