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

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

Условие:

В гороскопах, наполняющих газеты и журналы, астрологи пытаются положение солнца в момент рождения человека как-то связать с его судьбой. Всего насчитывается 12 знаков зодиака, и все они приведены ниже:
- Козерог: 22 декабря – 19 января
- Водолей: 20 января – 18 февраля
- Рыбы: 19 февраля – 20 марта
- Овен: 21 марта – 19 апреля
- Телец: 20 апреля – 20 мая
- Близнецы: 21 мая – 20 июня
- Рак: 21 июня – 22 июля
- Лев: 23 июля – 22 августа
- Дева: 23 августа – 22 сентября
- Весы: 23 сентября – 22 октября
- Скорпион: 23 октября – 21 ноября
- Стрелец: 22 ноября – 21 декабря

Код:

GOROSKOP = {
    "Козерог": "22.декабрь - 19.январь",
    "Водолей": "20.январь - 18.февраль",
    "Рыбы": "19.февраль - 20.март",
    "Овен": "21.март - 19.апрель",
    "Телец": "20.апрель - 20.май",
    "Близнецы": "21.май - 20.июнь",
    "Рак": "21.июнь - 22.июль",
    "Лев": "23.июль - 22.август",
    "Дева": "23.август - 22.сентябрь",
    "Весы": "23.сентябрь - 22.октябрь",
    "Скорпион": "23.октябрь - 21.ноябрь",
    "Стрелец": "22.ноябрь - 21.декабрь"
}

# ввод данных от пользователя
month = input("%75s" % "Введите месяц (в формате: январь..июнь): ")
day = input("%75s" % "Введите день (в формате: 1 .. 10 .. 21): ")

# уменьшим элементы для поиска до двух знаков (ищем по введённому месяцу)
small = list()
for a, b in zip(GOROSKOP.keys(), GOROSKOP.values()):
    if month in b:        
        small.append(tuple([b, a]))

# найдем искомый знак гороскопа
lenth = len(month)
if (small[0][0][3:(lenth+3)] == month) and int(day) >= int(small[0][0][0:2]):
    print("%74s" % small[0][1])
elif (small[-1][0][3:(lenth+3)] == month) and int(day) >= int(small[-1][0][0:2]):
    print("%74s" % small[-1][1])
elif (small[0][0][3:(lenth+3)] == month) and int(day) < int(small[0][0][0:2]):
    print("%74s" % small[-1][1])
elif (small[-1][0][3:(lenth+3)] == month) and int(day) < int(small[-1][0][0:2]):
    print("%74s" % small[0][1])