Решение на Хороскоп от Илия Ячев

Обратно към всички решения

Към профила на Илия Ячев

Резултати

  • 6 точки от тестове
  • 0 бонус точки
  • 6 точки общо
  • 15 успешни тест(а)
  • 0 неуспешни тест(а)

Код

SIGNS_AND_THEIR_END_DATES = [
('Козирог', (1, 19)),
('Водолей', (2, 18)),
('Риби', (3, 20)),
('Овен', (4, 20)),
('Телец', (5, 20)),
('Близнаци', (6, 20)),
('Рак', (7, 21)),
('Лъв', (8, 22)),
('Дева', (9, 22)),
('Везни', (10, 22)),
('Скорпион', (11, 21)),
('Стрелец', (12, 21)),
('Козирог', (12, 31))
]
def what_is_my_sign(day, month):
date_of_birth = (month, day)
for sign, end_date in SIGNS_AND_THEIR_END_DATES:
if date_of_birth <= end_date:
return sign

Лог от изпълнението

...............
----------------------------------------------------------------------
Ran 15 tests in 0.002s

OK

История (2 версии и 2 коментара)

Илия обнови решението на 02.03.2013 00:39 (преди около 11 години)

+def what_is_my_sign(day, month):
+ SIGNS_AND_THEIR_END_DATES = [
+ ('Козирог', (1, 19)),
+ ('Водолей', (2, 18)),
+ ('Риби', (3, 20)),
+ ('Овен', (4, 20)),
+ ('Телец', (5, 20)),
+ ('Близнаци', (6, 20)),
+ ('Рак', (7, 21)),
+ ('Лъв', (8, 22)),
+ ('Дева', (9, 22)),
+ ('Везни', (10, 22)),
+ ('Скорпион', (11, 21)),
+ ('Стрелец', (12, 21))
+ ]
+ date_of_birth = (month, day)
+ for sign, end_date in SIGNS_AND_THEIR_END_DATES:
+ if date_of_birth <= end_date:
+ return sign
+ return 'Козирог'

Илия обнови решението на 02.03.2013 23:11 (преди около 11 години)

+SIGNS_AND_THEIR_END_DATES = [
+ ('Козирог', (1, 19)),
+ ('Водолей', (2, 18)),
+ ('Риби', (3, 20)),
+ ('Овен', (4, 20)),
+ ('Телец', (5, 20)),
+ ('Близнаци', (6, 20)),
+ ('Рак', (7, 21)),
+ ('Лъв', (8, 22)),
+ ('Дева', (9, 22)),
+ ('Везни', (10, 22)),
+ ('Скорпион', (11, 21)),
+ ('Стрелец', (12, 21)),
+ ('Козирог', (12, 31))
+]
+
def what_is_my_sign(day, month):
- SIGNS_AND_THEIR_END_DATES = [
- ('Козирог', (1, 19)),
- ('Водолей', (2, 18)),
- ('Риби', (3, 20)),
- ('Овен', (4, 20)),
- ('Телец', (5, 20)),
- ('Близнаци', (6, 20)),
- ('Рак', (7, 21)),
- ('Лъв', (8, 22)),
- ('Дева', (9, 22)),
- ('Везни', (10, 22)),
- ('Скорпион', (11, 21)),
- ('Стрелец', (12, 21))
- ]
date_of_birth = (month, day)
for sign, end_date in SIGNS_AND_THEIR_END_DATES:
if date_of_birth <= end_date:
return sign
- return 'Козирог'

Така става ли - разглеждам че зодията козирог има 2 периода в една година - първи от 1.1 до 1.19 и втори от 12.22 до 12.31. По този начин успявам да реализирам същото решение без допълнително усложняване на кода.