python if-condition里面的简单算术

时间:2015-01-21 10:32:27

标签: python

第一个是有道理的,但第二个应该是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

1 个答案:

答案 0 :(得分:5)

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


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

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