Кристиан обнови решението на 02.03.2013 23:14 (преди над 11 години)
+def what_is_my_sign(day, month):
+ days_and_signs = [
+ {(1, 20): 'Козирог', (20, 32): 'Водолей'},
+ {(1, 19): 'Водолей', (19, 30): 'Риби'},
+ {(1, 21): 'Риби', (21, 32): 'Овен'},
+ {(1, 21): 'Овен', (21, 31): 'Телец'},
+ {(1, 21): 'Телец', (21, 32): 'Близнаци'},
+ {(1, 21): 'Близнаци', (21, 31): 'Рак'},
+ {(1, 22): 'Рак', (22, 32): 'Лъв'},
+ {(1, 23): 'Лъв', (23, 32): 'Дева'},
+ {(1, 23): 'Дева', (23, 31): 'Везни'},
+ {(1, 23): 'Везни', (23, 32): 'Скорпион'},
+ {(1, 22): 'Скорпион', (22, 31): 'Стрелец'},
+ {(1, 22): 'Стрелец', (22, 32): 'Козирог'}
+ ]
+
+ for key in days_and_signs[month - 1]:
+ if day in range(*key):
+ return days_and_signs[month - 1][key]
Доста хитро решение. Не сме говорили за това, но е добра идея речникът да го изнесеш като константа извън функцията.
В Python под константа се визира име в SCREAMING_SNAKE_CASE.