判斷平年與閏年
在公曆裡有 365 天和 366 天的差異,也就衍伸有了平年和閏年的定義,這篇文章將會介紹如何透過 Python 的 if 邏輯判斷式,判斷某一年是平年還是閏年。
本篇使用的 Python 版本為 3.7.12,所有範例可使用 Google Colab 實作,不用安裝任何軟體 ( 參考:使用 Google Colab )
什麼是平年?什麼是閏年?
平年和閏年按照下方的規範來定義,只要滿足下方的規範,就是閏年,否則就是平年,閏年的二月有 29 天,平年的二月則是 28 天。
- 除以 4 能整除,且除以 100 不能整除
- 如果剛好是 100 的倍數,且除以 400 能整除
舉例來說 2000 年是 100 的倍數且除以 400 能整除,所以是 2000 年是閏年,例如 2100 年雖然是 4 的倍數,但除以 100 能整除,所以 2100 年是平年。
編輯程式 ( 巢狀判斷 )
根據平年閏年的判斷規則,撰寫對應的程式,讓使用者先輸入年份,再根據年份判斷平年閏年,判斷的方式使用 % 計算餘數是否為 0。
year = int(input('>')) # 使用變數 year 紀錄使用者輸入的年份
if year%4 == 0: # 如果除以 4 能整除
if year%100 == 0: # 如果除以 100 能整除
if year%400 == 0: # 如果除以 400 能整除,就是閏年
print(f'{year} 是閏年')
else:
print(f'{year} 是平年')
else:
print(f'{year} 是閏年')
else:
print(f'{year} 是平年')
編輯程式 ( 非巢狀判斷 )
如果覺得巢狀判斷式不容易理解,也可以用更簡單的判斷方法,先新增一個變數 text 預設平年,再依序判斷年份,逐步將 text 的內容改變,也可以得到相同的結果。
year = int(input('>'))
text = '平年' # 新增變數 text 預設平年
if year%4 == 0:
text = '閏年' # 如果除以 4 能整除,將 text 改為閏年
if year%100 == 0:
text = '平年' # 如果除以 100 能整除,將 text 改為平年
if year%400 == 0:
text = '閏年' # 如果除以 400 能整除,將 text 改為閏年
print(f'{year} 是{text}')
意見回饋
如果有任何建議或問題,可傳送「意見表單」給我,謝謝~