Skip to main content
 首页 » 编程设计

Python 三元运算符(做某事,如果标志,否则做另一个)

2025年05月04日16zfyouxi

有没有使用python if/else(三元运算符)实现这个功能的方法:

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 

请您参考如下方法:

在 Python 2.X 中,print 是一个语句,而在 3.X 中,print 是一个函数。

您可以执行 from __future__ import print_function 并且 print 现在将成为一个函数。如果您想在表达式中打印,则可以执行 print("abc") if condition else None。请注意,表达式的值始终为 None,但它可能会或可能不会打印“abc”,具体取决于 condition 的值。

您可能需要重新考虑您的编程风格。它可能会与表达式中发生的副作用混淆,例如打印。此外,在我看来,出于多种原因,Python 不是函数式编程的理想选择。例如:

  • 没有适当的尾调用,因此您很容易出现堆栈溢出(或最大递归深度错误)。
  • lambda 表达式中不能有语句。这包括 yield 语句,否则可用于减轻缺少尾调用的情况。