我需要使用 python 将月份名称作为用户输入来查找某个月份的天数

问题描述 投票:0回答:1

通过将月份名称作为用户输入,我们必须找到该月包含的天数。 如果月份名称不正确(例如用户拼写错误),我们必须打印“None”。

预期输出:

案例-1: 输入:一月 输出:31

案例-2: 输入:朱尔 输出:无

python user-input
1个回答
0
投票

为了处理闰年(即,在某些年份,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
© www.soinside.com 2019 - 2024. All rights reserved.