Решение на Хороскоп от Филарета Йорданова

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

Към профила на Филарета Йорданова

Резултати

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

Код

def what_is_my_sign(day, month):
signs = {(3, range(21, 32)): "Овен", (4, range(1, 21)): "Овен",
(4, range(21, 31)): "Телец", (5, range(1, 21)): "Телец",
(5, range(21, 32)): "Близнаци", (6, range(1, 21)): "Близнаци",
(6, range(21, 31)): "Рак", (7, range(1, 22)): "Рак",
(7, range(22, 32)): "Лъв", (8, range(1, 23)): "Лъв",
(8, range(23, 32)): "Дева", (9, range(1, 23)): "Дева",
(9, range(23, 31)): "Везни", (10, range(1, 23)): "Везни",
(10, range(23, 32)): "Скорпион", (11, range(1, 22)): "Скорпион",
(11, range(22, 31)): "Стрелец", (12, range(1, 22)): "Стрелец",
(12, range(22, 32)): "Козирог", (1, range(1, 20)): "Козирог",
(1, range(20, 32)): "Водолей", (2, range(1, 19)): "Водолей",
(2, range(19, 30)): "Риби", (3, range(1, 21)): "Риби"}
for key in signs.keys():
if month == key[0] and day in key[1]:
return signs[key]

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

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

OK

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

Филарета обнови решението на 28.02.2013 21:20 (преди над 11 години)

+# encoding = utf-8
+
+def what_is_my_sign(day, month):
+ signs = {(3, range(21, 32)): "Овен", (4, range(1, 21)): "Овен",
+ (4, range(21, 31)): "Телец", (5, range(1, 21)): "Телец",
+ (5, range(21, 32)): "Близнаци", (6, range(1, 21)): "Близнаци",
+ (6, range(21, 31)): "Рак", (7, range(1, 22)): "Рак",
+ (7, range(22, 32)): "Лъв", (8, range(1, 23)): "Лъв",
+ (8, range(23, 32)): "Дева", (9, range(1, 23)): "Дева",
+ (9, range(23, 31)): "Везни", (10, range(1, 23)): "Везни",
+ (10, range(23, 32)): "Скорпион", (11, range(1, 22)): "Скорпион",
+ (11, range(22, 31)): "стрелец", (12, range(1, 22)): "Стрелец",
+ (12, range(22, 32)): "Козирог", (1, range(1, 20)): "Козирог",
+ (1, range(20, 32)): "Водолей", (2, range(1, 19)): "Водолей",
+ (2, range(19, 28)): "Риби", (3, range(1, 21)): "Риби",
+ }
+ for key in signs.keys():
+ if month == key[0] and day in key[1]:
+ return signs[key]

Филарета обнови решението на 28.02.2013 23:20 (преди над 11 години)

# encoding = utf-8
def what_is_my_sign(day, month):
signs = {(3, range(21, 32)): "Овен", (4, range(1, 21)): "Овен",
(4, range(21, 31)): "Телец", (5, range(1, 21)): "Телец",
(5, range(21, 32)): "Близнаци", (6, range(1, 21)): "Близнаци",
(6, range(21, 31)): "Рак", (7, range(1, 22)): "Рак",
(7, range(22, 32)): "Лъв", (8, range(1, 23)): "Лъв",
(8, range(23, 32)): "Дева", (9, range(1, 23)): "Дева",
(9, range(23, 31)): "Везни", (10, range(1, 23)): "Везни",
(10, range(23, 32)): "Скорпион", (11, range(1, 22)): "Скорпион",
(11, range(22, 31)): "стрелец", (12, range(1, 22)): "Стрелец",
(12, range(22, 32)): "Козирог", (1, range(1, 20)): "Козирог",
(1, range(20, 32)): "Водолей", (2, range(1, 19)): "Водолей",
- (2, range(19, 28)): "Риби", (3, range(1, 21)): "Риби",
+ (2, range(19, 30)): "Риби", (3, range(1, 21)): "Риби",
}
for key in signs.keys():
if month == key[0] and day in key[1]:
return signs[key]

Две дребни забележки:

  • В Python 3.x нямаш нужда от # encoding = utf-8. По подразбиране е така.
  • По невнимание си сложила на едно място "стрелец" с малка буква и въпреки, че логиката ти е идеална може да ти фейлне тест, заради case-а.

Иначе си предала страхотно решение.

Филарета обнови решението на 01.03.2013 20:18 (преди над 11 години)

-# encoding = utf-8
-
def what_is_my_sign(day, month):
signs = {(3, range(21, 32)): "Овен", (4, range(1, 21)): "Овен",
(4, range(21, 31)): "Телец", (5, range(1, 21)): "Телец",
(5, range(21, 32)): "Близнаци", (6, range(1, 21)): "Близнаци",
(6, range(21, 31)): "Рак", (7, range(1, 22)): "Рак",
(7, range(22, 32)): "Лъв", (8, range(1, 23)): "Лъв",
(8, range(23, 32)): "Дева", (9, range(1, 23)): "Дева",
(9, range(23, 31)): "Везни", (10, range(1, 23)): "Везни",
(10, range(23, 32)): "Скорпион", (11, range(1, 22)): "Скорпион",
- (11, range(22, 31)): "стрелец", (12, range(1, 22)): "Стрелец",
+ (11, range(22, 31)): "Стрелец", (12, range(1, 22)): "Стрелец",
(12, range(22, 32)): "Козирог", (1, range(1, 20)): "Козирог",
(1, range(20, 32)): "Водолей", (2, range(1, 19)): "Водолей",
(2, range(19, 30)): "Риби", (3, range(1, 21)): "Риби",
}
for key in signs.keys():
if month == key[0] and day in key[1]:
- return signs[key]
+ return signs[key]

Филарета обнови решението на 02.03.2013 14:25 (преди над 11 години)

def what_is_my_sign(day, month):
signs = {(3, range(21, 32)): "Овен", (4, range(1, 21)): "Овен",
(4, range(21, 31)): "Телец", (5, range(1, 21)): "Телец",
(5, range(21, 32)): "Близнаци", (6, range(1, 21)): "Близнаци",
(6, range(21, 31)): "Рак", (7, range(1, 22)): "Рак",
(7, range(22, 32)): "Лъв", (8, range(1, 23)): "Лъв",
(8, range(23, 32)): "Дева", (9, range(1, 23)): "Дева",
(9, range(23, 31)): "Везни", (10, range(1, 23)): "Везни",
(10, range(23, 32)): "Скорпион", (11, range(1, 22)): "Скорпион",
(11, range(22, 31)): "Стрелец", (12, range(1, 22)): "Стрелец",
(12, range(22, 32)): "Козирог", (1, range(1, 20)): "Козирог",
(1, range(20, 32)): "Водолей", (2, range(1, 19)): "Водолей",
- (2, range(19, 30)): "Риби", (3, range(1, 21)): "Риби",
- }
+ (2, range(19, 30)): "Риби", (3, range(1, 21)): "Риби"}
for key in signs.keys():
if month == key[0] and day in key[1]:
- return signs[key]
+ return signs[key]