Александър обнови решението на 03.03.2013 23:12 (преди над 11 години)
+# Gets a map with <key,value> pairs that define horoscope
+# and which pairs have the following meaning:
+# ->key: period for the sign (start_date, start_month, end_date, end_month)
+# ->value: the name of the sign
+
+
+def get_periods_map():
+ horoscope_map = {}
+ horoscope_map[(21, 3, 20, 4)] = "Овен"
+ horoscope_map[(21, 4, 20, 5)] = "Телец"
+ horoscope_map[(21, 5, 20, 6)] = "Близнаци"
+ horoscope_map[(21, 6, 21, 7)] = "Рак"
+ horoscope_map[(22, 7, 22, 8)] = "Лъв"
+ horoscope_map[(23, 8, 22, 9)] = "Дева"
+ horoscope_map[(23, 9, 22, 10)] = "Везни"
+ horoscope_map[(23, 10, 21, 11)] = "Скорпион"
+ horoscope_map[(22, 11, 21, 12)] = "Стрелец"
+ horoscope_map[(22, 12, 19, 1)] = "Козирог"
+ horoscope_map[(20, 1, 18, 2)] = "Водолей"
+ horoscope_map[(19, 2, 20, 3)] = "Риби"
+
+ return horoscope_map
+
+
+def what_is_my_sign(day, month):
+ periods = get_periods_map()
+
+ for period, name in periods.items():
+ is_in_start_period = (month == period[1]) and (day >= period[0])
+ is_in_end_period = (month == period[3]) and (day <= period[2])
+ if is_in_start_period or is_in_end_period:
+ return name
Наличието на horoscope_map
в началото на 13 поредни реда не те ли наведе на мисълта, че вършиш нещо грешно? Освен това не е нужно името на всеки речник да свършва с _dict
или _map
.
И защо е нужно да е във функция?
Скобите в is_in_end_period
и is_in_start_period
са излишни.