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

标签 python if-statement

有没有使用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 语句,否则可用于减轻缺少尾调用的情况。

关于Python 三元运算符(做某事,如果标志,否则做另一个),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18376444/

相关文章:

python - BranchPythonOperator 意外跳过后的 Airflow 任务

python - 将纪元时间转换为本地时间

python - 安装你自己的 Python 包

mysql - 检查存储过程中的 var 是否为 NULL

java - 如何或可以概括多个 JButton 的 If 语句(颜色更改)?

python - "%PYTHON_EXT_PATH%"未在 Visual Studio Team Services 中使用 Azure Flask Web 部署的内联脚本进行设置

java - 语言操作工具

sql - 如果是逗号 SQL,则修剪掉最后一个字符

r - 如何在组内将第一个值与每个后续值进行比较,直到满足条件

c++ - 试图阻止银行程序在选择交易后结束。 C++