Python的嵌套“if-else”是否与“if”与“and”条件不同?

时间:2018-01-07 19:01:51

标签: python if-statement

我最近一直在试图追踪一个错误,我已经意识到我对Python如何评估语句的理解在某些方面缺乏。

Python是否在如何处理嵌套if语句与if ...和block?

之间存在任何相关差异

例如:

if profile_username == input_username and profile_password == input_password:
    log_in(loaded_profile)

这与

有何不同
if profile_username == input_username:
    if profile_password == input_password:
        log_in(loaded_profile)

他们都懒惰地评价,他们都要求满足这两个条件,否则,我不知道它们是否相同。

一个版本是否会创建另一个版本的行为(BUGS ???)?在这样的情况下,它只是程序员偏好使用哪个?

1 个答案:

答案 0 :(得分:3)

在这两种情况下,if逻辑将保持不变,但您的else逻辑会有所不同。例如:

if condition_1 and condition_2:
    # something
else:
    # something else

如果elsecondition_1中的任何一个失败,则会执行condition_2

但如果您的条件陈述如下:

if condition_1:
    if condition_2:
        # something
    else:
        # something else
else:
    # something else

您需要在此处为​​condition_1condition_2定义您的其他屏蔽。如果缺少任何else块,您将获得不同的结果。