ขอถามเรื่อง if,elif ของ Python หน่อยครับว่าผมเข้าใจถูกไหม


สมมติว่าค่า year = 2000
จากในรูปฟังกชั่น isLeapYear(year)
ถ้าให้แกะโค้ดเป็นภาษาคน คือสเต็ปการทำงานเป็นตามในรูปที่ผมเข้าใจถูกต้องไหมครับ
คือ บรรทัด If แรก  [ถ้า 2000 % 4 ไม่เท่ากับ 0 (ความหมายคือหารไม่ลงตัว)
                          year = False แต่ในที่นี่ 2000 มันดันหารลงตัว ดังนั้นให้ไปทำงานใน
     บรรทัด elif สองต่อ ถ้า 20000 ไม่เท่ากับ 0 (ความหมายคือหารไม่ลงตัว)
                          year = True แต่ในที่นี่ 2000 มันดันหารลงตัว ดังนั้นเงื่อนไขไม่เป็นจริง ให้ไปทำงานใน
               elif สามต่อ ถ้า 2000%400 ไม่เท่ากับ 0 (ความหมายคือหารไม่ลงตัว)
                          year = False แต่ในที่นี่ 2000 มันดันหารลงตัว ดังนั้นเงื่อนไขไม่เป็นจริง ให้ไปทำงานใน
               else: บรรทัดสุดท้ายเลยสรุปการทำงานละก็ return ออกไปเลย

ผมเรียบเรียงลำดับความคิดแล้วเหมือนจะเข้าใจ
แต่พออ่านอีกทีดันสับสน ยิ่งอ่านหลายทีแล้ว งงๆ สับสน
เลยมาถามอีกให้แน่ใจว่าผมเข้าใจถูกรึป่าว
คำตอบที่ได้รับเลือกจากเจ้าของกระทู้
ความคิดเห็นที่ 2
"ปีต้นคริสตศตวรรษไม่เป็น leap ยกเว้น  ปีต้นศตวรรษที่หาร 400 ลงตัว"  (เช่นปี 2000)

def isLeapYear(year):    
    if year % 4 != 0:
        leap = False        # หารสี่ไม่ลงตัว (28)
    elif year % 100 != 0:
        leap = True         # หารสี่ลง ไม่ใช่ต้นศตวรรษ (29)
    elif year % 400 != 0:
        leap = False        # หารสี่ลง ต้นศตวรรษ แต่หาร 400 ไม่ลง (28)
    else:
        leap = True         # หารสี่ลง ต้นศตวรรษ หาร 400 ลง (29)
  
    return leap
แสดงความคิดเห็น
โปรดศึกษาและยอมรับนโยบายข้อมูลส่วนบุคคลก่อนเริ่มใช้งาน อ่านเพิ่มเติมได้ที่นี่