【问题标题】:python if-condition inside simple arithmetic [duplicate]简单算术中的python if-condition [重复]
【发布时间】:2015-01-21 10:32:27
【问题描述】:

第一个是有道理的,但第二个应该是2,不是吗?

>>> 1 + 3 if 2>1 else 1
4
>>> 1 + 3 if 2>3 else 1
1

而,

>>> r = 3 if 2>3 else 1
>>> r
1

为什么它的行为不同,或者我错过了什么?

更新

我想

1 + "3 if 2>3 else 1" 

将是 1 + 31 + 1,具体取决于 if

【问题讨论】:

  • 有什么不同?
  • 我猜的优先级。
  • 这个问题的逻辑是什么我还是不明白。基本上你在问括号有效。如果您在算术中使用括号有问题,那么您的问题并不清楚您在问什么。

标签: python


【解决方案1】:

如果您按如下方式设置括号,第二个只会给出 2


1 + (3 if 2>3 else 1)
你的陈述相当于

(1 + 3) if 2>3 else 1
从而给你 1

【讨论】:

  • 哦,谢谢,这把我搞砸了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-09-09
  • 1970-01-01
  • 2018-09-06
  • 1970-01-01
  • 2021-10-18
  • 2021-01-06
  • 1970-01-01
相关资源
最近更新 更多