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

时间:2018-10-21 10:09:58

标签: python printing boolean-logic ternary

我不明白为什么会失败

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

2 个答案:

答案 0 :(得分:1)

这是因为在python 2中,您编写:

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的“参数”上使用三元运算。

答案 1 :(得分:0)

print函数在Python 2中是一个特殊的语句,因此不能在三元运算符所在的复杂表达式中使用。您的代码将在Python 3中运行。