Python 在三元条件运算符中使用 print() 函数?

Python use the print() function in a ternary conditional operator?

我不明白为什么会失败

print('Yes') if True else print('No')
  File "<stdin>", line 1
    print('Yes') if True else print('No')
                                  ^
SyntaxError: invalid syntax

print('Yes') if True == False else print('No')
  File "<stdin>", line 1
    print('Yes') if True == False else print('No')
                                           ^
SyntaxError: invalid syntax

但这确实有效

print('Yes') if True else True
Yes

print函数是Python2中的特殊语句,所以不能用在三元运算符行的复杂表达式中。您的代码将在 Python 3.

中运行

因为在python2中,当你写:

print('Yes') if True else True

实际上是

print(('Yes') if True else True)

所以你可以这样写:

print('Yes') if True else ('No')

或者,更漂亮一点

print('Yes' if True else 'No')

表示只能对python2中print的"argument"进行三元运算。