【发布时间】:2018-09-18 21:28:35
【问题描述】:
我最近开始使用三元运算符,但遇到了需要在同一行中使用多个三元运算符的情况,但它们似乎没有按我的预期工作。
有人可以解释一下为什么这些行给出不同的结果。
x = 1 if True else 2 + 3 if False else 4 # x = 1, I expected 5
x = (1 if True else 2) + (3 if False else 4) # x = 5
如果我添加括号,我会得到预期的结果,但我不明白括号会发生什么变化。
如果我旋转加法,没有括号,我得到正确的值。
3 if False else 4 + 1 if True else 2 # x = 5
但是,如果第二个三元运算符为 False,我会得到错误的结果:
3 if False else 4 + 1 if False else 2 # x = 5 # x = 2 ???
是因为您不应该在同一行中使用多个三元运算符,还是其他原因?
【问题讨论】: