Различные методы получения названий месяцев из номеров месяцев в Python

Вот программа на Python, которая принимает введенные пользователем данные о номере месяца и печатает соответствующее название месяца:

month_number = int(input("Enter the month number: "))
if month_number == 1:
    month_name = "January"
elif month_number == 2:
    month_name = "February"
elif month_number == 3:
    month_name = "March"
elif month_number == 4:
    month_name = "April"
elif month_number == 5:
    month_name = "May"
elif month_number == 6:
    month_name = "June"
elif month_number == 7:
    month_name = "July"
elif month_number == 8:
    month_name = "August"
elif month_number == 9:
    month_name = "September"
elif month_number == 10:
    month_name = "October"
elif month_number == 11:
    month_name = "November"
elif month_number == 12:
    month_name = "December"
else:
    month_name = "Invalid month number"
print("The corresponding month name is:", month_name)

Эта программа предлагает пользователю ввести номер месяца. Затем он проверяет значение номера месяца с помощью серии операторов if-elif и присваивает соответствующее название месяца переменной month_name. Наконец, он печатает название месяца.

Теперь перейдем к статье в блоге, в которой объясняются различные методы на примерах кода:

Метод 1: использование списка

Один из самых простых способов добиться этого — использовать список для хранения названий месяцев. Вот пример:

month_names = [
    "January", "February", "March", "April", "May", "June", 
    "July", "August", "September", "October", "November", "December"
]
month_number = int(input("Enter the month number: "))
if 1 <= month_number <= 12:
    month_name = month_names[month_number - 1]
    print("The corresponding month name is:", month_name)
else:
    print("Invalid month number")

В этом методе мы определяем список month_names, который содержит все названия месяцев по порядку. Затем мы используем введенный номер месяца для доступа к соответствующему индексу в списке и получения названия месяца.

Метод 2: использование словаря

Другой подход — использовать словарь, в котором ключи представляют номера месяцев, а значения — названия месяцев. Вот пример:

month_dict = {
    1: "January", 2: "February", 3: "March", 4: "April", 
    5: "May", 6: "June", 7: "July", 8: "August", 
    9: "September", 10: "October", 11: "November", 12: "December"
}
month_number = int(input("Enter the month number: "))
month_name = month_dict.get(month_number)
if month_name:
    print("The corresponding month name is:", month_name)
else:
    print("Invalid month number")

В этом методе мы создаем словарь month_dict, где ключами являются номера месяцев, а значениями — соответствующие названия месяцев. Затем мы используем метод get()для получения названия месяца на основе введенного номера месяца.

Метод 3. Использование модуля календаря

Встроенный модуль calendarPython предоставляет различные функции и классы для работы с календарями, включая получение названий месяцев. Вот пример:

import calendar
month_number = int(input("Enter the month number: "))
if 1 <= month_number <= 12:
    month_name = calendar.month_name[month_number]
    print("The corresponding month name is:", month_name)
else:
    print("Invalid month number")

В этом методе мы импортируем модуль calendarи используем атрибут month_name, который представляет собой список названий месяцев. Мы получаем доступ к названию месяца, индексируя его в списке по введенному номеру месяца.

Метод 4: использование оператора Switch (с Python 3.10+)

Начиная с Python 3.10 был введен оператор match, который можно использовать в качестве оператора переключения. Вот пример:

month_number = int(input("Enter the month number: "))
match month_number:
    case 1:
        month_name = "January"
    case 2:
        month_name = "February"
    case 3:
        month_name = "March"
    case 4:
        month_name = "April"
    case 5:
        month_name = "May"
    case 6:
        month_name = "June"
    case 7:
        month_name = "July"
    case 8:
        month_name = "August"
    case 9:
        month_name = "September"
    case10:
        month_name = "October"
    case 11:
        month_name = "November"
    case 12:
        month_name = "December"
    case _:
        month_name = "Invalid month number"
print("The corresponding month name is:", month_name)

В этом методе мы используем оператор matchдля сопоставления введенного номера месяца с разными случаями. Если совпадение найдено, соответствующее название месяца присваивается переменной month_name. Если совпадений нет, выполняется вариант по умолчанию, и значению «Неверный номер месяца» присваивается значение month_name.