tedpetrelli 发表于 2022-4-18 21:37:56

小白运算符优先等级问题

第11课的作业第3题,如图所示,虽然我算出来的结果也是6,但是接替逻辑和答案有些不同,不是+的运算等级要比and和or高吗?那不就应该先算5 + True,此时True算1的话就是6,但是为什么答案解释要先算3 and 5呢?

坚持自律 发表于 2022-4-18 21:56:18

本帖最后由 坚持自律 于 2022-4-18 21:57 编辑

这个算式,我的理解是,翻译成文字可以表达为:3和5,加上,True或者Flase.首先你得确定3和5谁做为加数,True和Flase谁做为另一个加数。
按照你的算法,列式子的话成了:3 and 5 or Flase了,这个结果怎么运算

大马强 发表于 2022-4-18 22:02:41

这个小甲鱼下面不是说了吗 逻辑短路
左边的值不定,那就先定下左边的值
>>> 1 + 2 and 5
5
>>> 1 and 5 + 2
7

tedpetrelli 发表于 2022-4-19 18:14:22

坚持自律 发表于 2022-4-18 21:56
这个算式,我的理解是,翻译成文字可以表达为:3和5,加上,True或者Flase.首先你得确定3和5谁做为加数,Tr ...

我从一开始的理解就和你不一样,我看到小甲鱼的课程里那张优先级的表格中加法的优先级是高于and和or的优先级的,所以我以为3 and 5 + True or False应该是先算5 + Ture,然后True可以理解为1,所以5 + True = 6,整个公式就变成了3 and 6 or False,这样的话结果就是6了,我现在也不知道我在哪一步错了{:10_269:}

tedpetrelli 发表于 2022-4-19 18:15:40

大马强 发表于 2022-4-18 22:02
这个小甲鱼下面不是说了吗 逻辑短路
左边的值不定,那就先定下左边的值

那为什么不能是3 and (5 + True) or False呢,5 + True不能这样算吗?
页: [1]
查看完整版本: 小白运算符优先等级问题