通过将月份名称作为用户输入,我们必须找到该月包含的天数。 如果月份名称不正确(例如用户拼写错误),我们必须打印“None”。
预期输出:
案例-1: 输入:一月 输出:31
案例-2: 输入:朱尔 输出:无
为了处理闰年(即,在某些年份,2 月可能有 29 天),您可以使用
calendar
模块:
import calendar
from datetime import datetime
from typing import Optional
MONTH_INDEX_BY_MONTH_NAME = {
"january": 1,
"february": 2,
"march": 3,
"april": 4,
"may": 5,
"june": 6,
"july": 7,
"august": 8,
"september": 9,
"october": 10,
"november": 11,
"december": 12,
}
def get_days_of_month(month: str) -> Optional[int]:
"""Gets the number of days in a given month for current year."""
month = month.lower()
year = datetime.now().year
if month in MONTH_INDEX_BY_MONTH_NAME:
return calendar.monthrange(year, MONTH_INDEX_BY_MONTH_NAME[month])[1]
return None
def main() -> None:
print(f'{get_days_of_month("February") = }')
print(f'{get_days_of_month("jule") = }')
if __name__ == '__main__':
main()
输出:
get_days_of_month("February") = 28
get_days_of_month("jule") = None