为什么我不能在python中使用print in if三元运算符?

时间:2014-03-14 19:18:42

标签: python

为什么无效

print('true') if False else print('false')

但这个不是

def p(t):
    print(t)

p('true') if False else p('false')

2 个答案:

答案 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(或任何控制语句等),然后在三元运算符中使用该函数。