python - python 的 if/else 一个线性参数替换的具体情况

标签 python ternary-operator

谁能解释一下为什么:

>>> print 1,2 if 0 else 3,4
1 3 4

但是:

>>> print(1,2) if 0 else 3,4
3 4

或者也许这与这种情况根本无关?

最佳答案

您的第一个示例提供了三个要打印的项目,它们之间用逗号分隔:

1
2 if 0 else 3
4

您可以将括号放在不同的位置并得到相同的结果:

print 1, (2 if 0 else 3), 4

如果您想要元组行为,可以在此处使用括号:

print (1, 2) if 0 else (3, 4)

当然,问题在于它打印为元组而不是单独的参数。实际上,最好的办法是使用 from __future__ import print_function 并使用 print(*((1, 2) if 0 else (3, 4))) 或有一个完整的 if-else block :

if 0:
    print 1, 2
else:
    print 3, 4

关于python - python 的 if/else 一个线性参数替换的具体情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36815775/

相关文章:

python - tkinter 强制缩进

python - 关于可哈希对象的解释需要解释

python - 神秘的换行符被添加到 QPlainTextEdit 的末尾

javascript - 具有多个条件的 JS 三元函数?

c++ - 三元运算符和增量运算符

python - 在 django View 中更改模型的选择字段

python - 如何使用 pymongo 的 collection.update_one 或 update_many 指定不安全/安全写入

c++ - 为什么编译器要使用临时变量?

c# - 嵌套三元运算符

javascript - 这个 JavaScript 三元运算符是如何工作的