如何在一行中执行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】:

当您在同一行中使用ifelse 时,您实际使用的是条件三元运算符。这是一种基于条件从两个可能值中选择一个值的方法,而不是根据条件选择是否运行一条线。所以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 条件? [复制]

如何在 Thymeleaf 中执行 if-else?

如何阻止 if/else 中的 else 被执行?

如何使用 RegEx 执行 if 或 else?

如何在 UNIX shell 脚本中执行临时存储过程?是不是可以在 sql-plus 中使用 IF-ELSE/WHILE 循环?

如何在 Haml 中编写 if 条件?