python if-condition里面的简单算术

don*_*yor 0 python

第一个是有意义的,但第二个应该是2,不应该吗?

>>> 1 + 3 if 2>1 else 1
4
>>> 1 + 3 if 2>3 else 1
1
Run Code Online (Sandbox Code Playgroud)

然而,

>>> r = 3 if 2>3 else 1
>>> r
1
Run Code Online (Sandbox Code Playgroud)

为什么它表现不同,或者我错过了什么?

UPDATE

我想

1 + "3 if 2>3 else 1" 
Run Code Online (Sandbox Code Playgroud)

将是1 + 31 + 1取决于if

was*_*stl 5

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


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

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