【问题标题】:Does Python Check ALL conditions in an multi-condition if statement? [duplicate]Python是否检查多条件if语句中的所有条件? [复制]
【发布时间】:2020-01-15 16:15:45
【问题描述】:

我很好奇如果第一个条件返回 False,Python 是否会继续检查 if 语句中的条件。我想知道这一点,因为我想知道最佳实践是否是在更复杂的检查之前尝试检查时间复杂度较低的条件。

这两个sn-ps有区别吗?

if condition_1() and condition_2():
    do_something()

if condition_1():
    if condition_2():
        do_something()

【问题讨论】:

  • 没有区别。 Python 将在 if 语句中从左到右懒惰地评估布尔条件。如果condition_1()False,它不会尝试评估condition_2()

标签: python python-3.x logic


【解决方案1】:

是的,python 布尔运算符是 short-circuit

两个代码示例在语义上是等效的,但第一个代码示例更易读,因为它的嵌套级别较低。

【讨论】:

  • 谢谢!这是否意味着最好写“if simple_condition() and complex_condition():”而不是相反?
  • @Joseph 我想是的。
猜你喜欢
  • 1970-01-01
  • 2010-12-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-08
  • 1970-01-01
  • 2015-07-12
  • 1970-01-01
相关资源
最近更新 更多