我最近一直在绞尽脑汁地试图找出一个错误,我开始意识到我在某些方面缺乏对 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???)吗?在这种情况下,仅仅是程序员选择使用哪一个吗?
最佳答案
在这两种情况下,您的 if
逻辑将保持相同,但您的 else
逻辑会有所不同。例如:
if condition_1 and condition_2:
# something
else:
# something else
如果 condition_1
或 condition_2
任何一个失败,else
将被执行。
但是如果你的条件语句是这样的:
if condition_1:
if condition_2:
# something
else:
# something else
else:
# something else
在这里,您需要为 condition_1
和 condition_2
定义 else block 。如果缺少任何 else
block ,您将得到不同的结果。
关于python - Python的嵌套 "if-else"与具有 "if"条件的 "and"不同吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48140574/