我最近一直在试图追踪一个错误,我已经意识到我对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 ???)?在这样的情况下,它只是程序员偏好使用哪个?
答案 0 :(得分:3)
在这两种情况下,if
逻辑将保持不变,但您的else
逻辑会有所不同。例如:
if condition_1 and condition_2:
# something
else:
# something else
如果else
或condition_1
中的任何一个失败,则会执行condition_2
。
但如果您的条件陈述如下:
if condition_1:
if condition_2:
# something
else:
# something else
else:
# something else
您需要在此处为condition_1
和condition_2
定义您的其他屏蔽。如果缺少任何else
块,您将获得不同的结果。