为什么无效
print('true') if False else print('false')
但这个不是
def p(t):
print(t)
p('true') if False else p('false')
答案 0 :(得分:9)
正如已经指出的那样(@ NPE,@ Blender和其他人),在Python2.x中print
是一个声明,它是你问题的根源。但是,您不需要第二个print
在您的示例中使用三元运算符:
>>> print 'true' if False else 'false'
false
答案 1 :(得分:4)
在Python 2中,print
是一个语句,因此无法直接在三元运算符中使用。
在Python 3中,print
是一个函数,因此可以在三元运算符中使用。
在Python 2和3中,您可以在函数中包装print
(或任何控制语句等),然后在三元运算符中使用该函数。