是否使用python /else (ternary_operator)实现此功能:
flag = True # or False
if flag:
print 'abc'
else:
pass我试着用:
print 'abc' if flag else ''但是,如果flag == False,则将打印一个空行。因为:
print 'abc' if flag else '' == print ('abc' if flag else '')
如果不使用;,有什么方法可以使flag == False不打印任何;
提前谢谢。
顺便说一句,我尝试过使用lambda,但没有成功,这里是我的代码:
a = lambda x: x if False else None
print a(1)结果:
>> python a.py
None发布于 2013-08-22 09:34:16
在Python2.x中,print是一个语句,而在3.X中,print是一个函数。
您可以做from __future__ import print_function和打印现在将是一个函数。如果要在表达式中打印,则可以执行print("abc") if condition else None操作。请注意,表达式的值始终为None,但它可能打印或不打印"abc“,这取决于condition的值。
您可能需要重新考虑您的编程风格。它可能与副作用混淆,如打印,在表达式中发生。此外,在我看来,Python对于函数式编程并不理想,原因有很多。例如:
发布于 2013-08-22 09:24:54
为什么不只是:
if flag:
print "abc"
else:
# do something else发布于 2013-08-22 09:41:02
from __future__ import print_function
print('abc') if flag else Nonehttps://stackoverflow.com/questions/18376444
复制相似问题