【问题标题】:Python multi-conditional if statement with action for each conditionalPython 多条件 if 语句,每个条件都有操作
【发布时间】:2019-12-12 12:03:32
【问题描述】:

我想检查多个布尔值并在它们都为真时做一些事情,但也要为每个为真做一些事情。 基本上将以下内容合二为一:

# I want to combine this:
if funcA() and funcB() and funcC():
   #do something

#with these:
if funcA():
   #do A's something

if funcB():
   #do B's something

if funcC():
   #do C's something

以上所有函数都只返回布尔值。

我正在寻找一种更有效(明智)的方法。

【问题讨论】:

  • A、B、C是否保证互斥?
  • 你到底想达到什么目的?
  • 用更少的行数做到这一点的方法。我已经在第一个语句中检查了每个函数的值,所以肯定有一种方法不需要我再次单独检查它们。
  • 而 A、B 和 C 可以返回布尔值的任意组合

标签: python if-statement conditional-statements


【解决方案1】:

我的解决方案是将 A、B 和 C 的代码放入函数本身

def funcA():
   if random.choice([True, False]):
       print("doing A's something")
       return True

然后我可以调用每个函数而不使用它的返回值,然后进行条件检查。

funcA()
funcB()
funcC()

if funcA() and funcB() and funcC():
   print("do something if all true")

【讨论】:

  • 怀疑任何人都会看到这一点,但更好的解决方案是将每个函数的结果放在一个列表中,然后使用all() 检查是否全部返回 true。这意味着每个函数只需调用一次。
猜你喜欢
  • 2019-10-14
  • 2013-12-17
  • 2017-10-29
  • 1970-01-01
  • 1970-01-01
  • 2017-09-25
  • 1970-01-01
  • 2014-10-20
  • 1970-01-01
相关资源
最近更新 更多