首页 > 解决方案 > 为什么我不能使用两个“if 语句”而不是一个 elif,如果两者中只有一个会执行?

问题描述

我正在编写代码来解决一个基本问题:

def is_leap(year):
    leap = False

    if year % 4 == 0:
        if year % 100 == 0 and year % 400 != 0:
            leap = False
        if year % 100 == 0 and year % 400 == 0:
            leap = True
        else:
            leap = True

    return leap

print(is_leap(2100))

我的问题是关于最内部的范围;特别是second 'if statement'- 我知道这一定是一个'elif'(如果我们不改变它,我们的答案将是错误的)但我不明白为什么会这样。在我的 IDE 中,如果我按照上面的方式保留代码,则'leap=False'第一个会if statement变灰。

即使我if vs elif一般理解,为什么我们不能同时将两者都用作“if语句”?因为(在这种情况下)基于逻辑,对于我们用作参数的任何输入,两个 if 语句中只会执行一个,对吗?

标签: pythonif-statement

解决方案


elifif如果条件正确,则不执行。如果您使用两个if语句,无论它们都将被执行。

不仅如此,因为你有一个else,所以else只会连接到第二个 if 条件,而 anelif会连接整个代码块。


推荐阅读