在python中,当我将空字符串附加到非空字符串时,结果是预期的
>>> "1234" + ""
>>> "1234"
但是当我使用这样的三元运算符时,这就是输出
>>> "1234" + "abcd" if True else ""
>>> "1234abcd"
>>> "1234" + "abcd" if False else ""
>>> ""
为什么我在第二种情况下得到一个空字符串而不是"1234"
?
答案 0 :(得分:4)
+
运算符比三元运算符绑定得更紧密,因此您的代码被解释为("1234" + "abcd") if condition else ""
。如果条件为True,则返回第一个字符串(另外两个的总和),否则返回空字符串。
答案 1 :(得分:2)
只想扩展@BrenBarn的答案(这是正确的):如果你想得到理想的行为,你应该这样做:
"1234" + ("abcd" if False else "")
,或者
"1234" + "abcd" if False else "1234" + ""