Решение на Хороскоп от Вероника Стоилова

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

Към профила на Вероника Стоилова

Резултати

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

Код

SIGNS = (
(19, 'Козирог'),
(18, 'Водолей'),
(20, 'Риби'),
(20, 'Овен'),
(20, 'Телец'),
(20, 'Близнаци'),
(21, 'Рак'),
(22, 'Лъв'),
(22, 'Дева'),
(22, 'Везни'),
(21, 'Скорпион'),
(21, 'Стрелец')
)
def what_is_my_sign(day, month):
if (SIGNS[month-1][0] >= day):
return SIGNS[month-1][1]
else:
return SIGNS[month % 12][1]

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

...............
----------------------------------------------------------------------
Ran 15 tests in 0.001s

OK

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

Вероника обнови решението на 03.03.2013 23:04 (преди над 11 години)

+signs = [
+ (19, 'Козирог'),
+ (18, 'Водолей'),
+ (20, 'Риби'),
+ (20, 'Овен'),
+ (20, 'Телец'),
+ (20, 'Близнаци'),
+ (21, 'Рак'),
+ (22, 'Лъв'),
+ (22, 'Дева'),
+ (22, 'Везни'),
+ (21, 'Скорпион'),
+ (21, 'Стрелец'),
+ (None, 'Козирог')
+]
+
+
+def what_is_my_sign(day, month):
+ if (signs[month-1][0] >= day):
+ return signs[month-1][1]
+ else:
+ return signs[month][1]

Страхотно решение. Не сме ви говорили още за константи, но ако signs го направиш константа, ще е още по-добре. Константи са имена в SCREAMING_SNAKE_CASE.

Брилянтната идея да закачиш "Козирог" за None, толкова ме впечатли, че няма да я критикувам :D

Вероника обнови решението на 04.03.2013 01:44 (преди над 11 години)

-signs = [
+SIGNS = (
(19, 'Козирог'),
(18, 'Водолей'),
(20, 'Риби'),
(20, 'Овен'),
(20, 'Телец'),
(20, 'Близнаци'),
(21, 'Рак'),
(22, 'Лъв'),
(22, 'Дева'),
(22, 'Везни'),
(21, 'Скорпион'),
- (21, 'Стрелец'),
- (None, 'Козирог')
-]
+ (21, 'Стрелец')
+)
def what_is_my_sign(day, month):
- if (signs[month-1][0] >= day):
- return signs[month-1][1]
+ if (SIGNS[month-1][0] >= day):
+ return SIGNS[month-1][1]
else:
- return signs[month][1]
+ return SIGNS[month % 12][1]

Обнових решението - signs е вече SIGNS, за да е декларирано като константа (доколкото разбрах само това трябва да се направи за целта) и е tuple, а не list, за да не може да се променя. Също махнах елемента (None, 'Козирог') от SIGNS :) .