Python是不是检查多条件if语句中的所有条件? [复制]

Posted

技术标签:

【中文标题】Python是不是检查多条件if语句中的所有条件? [复制]【英文标题】: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() 【参考方案1】:

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

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

【讨论】:

谢谢!这是否意味着最好写“if simple_condition() and complex_condition():”而不是相反? @Joseph 我想是的。

以上是关于Python是不是检查多条件if语句中的所有条件? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

Python条件与循环

“python if”语句可以多条件判断吗?

为啥不是在嵌套的“if 语句”中检查所有条件?

Python入门教程第15篇 if条件语句

005.Python条件if语句

Cmake中的条件判断if/elseif/else