簡體   English   中英

為什么我不能使用兩個“if 語句”而不是一個 elif,如果兩者中只有一個會執行?

[英]Why can I not use two 'if-statements' rather an elif, if only one of the two will execute?

我正在編寫代碼來解決一個基本問題:

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 中,如果我保留上面的代碼,第一個if statement'leap=False'變灰。

盡管我通常理解if vs elif ,但為什么我們不能將兩者都作為“if 語句”? 因為(在這種情況下)基於邏輯,對於我們用作參數的任何輸入,只會執行兩個 if 語句中的一個,對嗎?

如果if條件正確, if elif不會執行。 如果您使用兩個if語句,無論它們都將執行什么。

不僅如此,因為你有一個else ,所以else只會連接到第二個 if 條件,而elif會連接整個代碼塊。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM