我不明白为什么会失败
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
答案 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中运行。