如何独立运行两个 if 语句? [复制]

Posted

技术标签:

【中文标题】如何独立运行两个 if 语句? [复制]【英文标题】:How to run two if statements independently? [duplicate] 【发布时间】:2020-10-25 08:55:46 【问题描述】:

我有以下 if 语句:

if can_move == True:
   
    return "ok"
else:
    return "error"

if can_run
    return "great"
else:
    return "error"

我遇到的问题是如果运行 else 语句,那么另一个 if 语句不会执行。我希望它们同时执行。

【问题讨论】:

我认为这是函数的一部分?如果该示例显示了这一点,那将有所帮助。事实上,我们可以运行并查看结果,再加上您预期的结果。 if the else statement is run, then the other if statement doesn't execute. 第一个 if 语句也是如此 或许if can_move: return "ok" elif can_run: return "great" else: return "error"? 目前尚不清楚该函数应具有什么价值 return — 请说明您想要的结果。 您希望return 做什么?在每种情况下,您究竟希望 return 的函数是什么? 【参考方案1】:

您可以创建 2 个单独的函数来处理它们。此外,如果你有布尔类型,你不应该返回任何字符串,除非它是绝对必要的。您应该制作 2 个单独的函数来处理移动,如果对应的值不是 True,则立即返回。

但如果你想这样做,你可以创建一个列表。

back = []
if can_move:
    back.append('ok')
else:
    back.append('error')
if can_run:
    back.append('great')
else:
    back.append('error')
return back

更简单的方法,但这将返回一个元组:

return ('ok' if can_move else 'error', 'great' if can_run else 'error')

【讨论】:

谢谢,如果我想在 else 语句下添加多个项目怎么办? 比如说我想做 if can_move: self.cases.update(key:value)) return "ok" 如果您想在返回前进行​​多次操作,建议您使用上面的第一个代码,并在返回前进行​​操作。而且,您可以创建新函数来控制这些操作,并从它们返回。这样你就不需要处理多个返回语句了。【参考方案2】:

那是因为 python 函数只会返回一次。你可以让它一次返回多个东西:

msg = []
if can_move:
    msg.append('ok')
else:
    return "error"

if can_run:
    msg.append('great')
else:
    return "error"
return ', '.join(msg)

【讨论】:

以上是关于如何独立运行两个 if 语句? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

在wildlfy9中,如何在独立模式下使用两个节点进行有状态的ejb会话复制(集群)

两个if语句可以平行使用吗

如何拥有两个具有两个不同高度的独立单元? [复制]

如何检查 Python 中是不是同时存在两个变量? [复制]

如何更好地组织这两个连续的 IF 语句?

If-then-else 逻辑来决定运行哪个 select 语句