第一个是有道理的,但第二个应该是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 + 3
或1 + 1
,具体取决于if
答案 0 :(得分:5)
如果您按如下方式设置括号,则第二个只会给2
1 + (3 if 2>3 else 1)
你的陈述相当于
(1 + 3) if 2>3 else 1
从而给你1