如何在一行中执行if和else
Posted
技术标签:
【中文标题】如何在一行中执行if和else【英文标题】:How to execute if and else in a single line 【发布时间】:2022-01-17 13:53:10 【问题描述】:使用 python 我试图在一行中执行 if 和 else,如下所示
expr = "no remainder" if 5% 2 == 0 else pass
print(expr)
输出:
SyntaxError: invalid syntax
预期输出:
It should pass condition without printing anything
请帮助我解决上述问题
【问题讨论】:
【参考方案1】:正如其他人提到的,pass
不应该这样使用。如果您想有条件地执行print()
语句,请执行以下操作:
expr = "no remainder" if 5 % 2 == 0 else None
if expr:
print(expr)
【讨论】:
【参考方案2】:s = 12 if 3 < 4 else 32
如果 3 小于 4,则分配 12,否则分配 32。
Putting a simple if-then-else statement on one line
【讨论】:
【参考方案3】:当您在同一行中使用if
和else
时,您实际使用的是条件三元运算符。这是一种基于条件从两个可能值中选择一个值的方法,而不是根据条件选择是否运行一条线。所以pass
无效。也许您想要的是None
或""
或"there is a remainder"
。这是正确的代码:
expr = "no remainder" if 5% 2 == 0 else "there is a remainder"
print(expr)
【讨论】:
【参考方案4】:您没有正确使用pass
。您应该在 else
块中返回一个值。 pass 语句是一个空操作;执行时没有任何反应,因此当条件不满足时,您的变量将为空。您可能希望返回类似 None
的内容。
【讨论】:
以上是关于如何在一行中执行if和else的主要内容,如果未能解决你的问题,请参考以下文章
如何在一行中编写嵌套的 if-elif-else 条件? [复制]
如何在 UNIX shell 脚本中执行临时存储过程?是不是可以在 sql-plus 中使用 IF-ELSE/WHILE 循环?