12. Даты праздников (в коде есть строки из следующих тем: "словари, строки, циклы").

(открыть в новой вкладке)

Условие:

В Канаде есть три национальных праздника, отмечающихся в одни и те же даты каждый год:
- Новый год - 1 января
- День Канады - 1 июля
- Рождество - 25 декабря
Напишите программу, которая будет запрашивать у пользователя день и месяц. Если введенные данные в точности указывают на один из перечисленных в таблице праздников, необходимо вывести его название. В противном случае сообщить, что на заданную дату праздники не приходятся.

Код:

holidays = {
    "Happy new year": "1 january",
    "Day of Canada": "1 july",
    "Christmas": "25 december"
}

month = input("%100s" % "Введите месяц по-английски полностью (к примеру: january или february): ")
day = input("%100s" % "Введите день месяца (к примеру: 1 или 10): ")

plus = day + " " + month

test = True
for holiday, date in zip(holidays.keys(), holidays.values()):                                       # функция zip обходит в цикле параллельно сразу два значения и может обатиться к любому из них, так и к другому за один проход
    if plus in date:
        print("%99s" % "На данную дату попадает праздник:", holiday)
        test = False    
if test:
    print("%99s" % "На данную дату не приходятся праздники.")