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

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

Към профила на Виктория Христова

Резултати

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

Код

ZODIAC = {
range(321, 421): 'Овен',
range(421, 521): 'Телец',
range(521, 621): 'Близнаци',
range(621, 722): 'Рак',
range(722, 823): 'Лъв',
range(823, 923): 'Дева',
range(923, 1023): 'Везни',
range(1023, 1122): 'Скорпион',
range(1122, 1222): 'Стрелец',
range(101, 120): 'Козирог',
range(1222, 1232): 'Козирог',
range(120, 219): 'Водолей',
range(219, 321): 'Риби',
}
def what_is_my_sign(day, month):
for date, sign in ZODIAC.items():
if 100*month + day in date:
return sign

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

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

OK

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

Виктория обнови решението на 01.03.2013 18:47 (преди над 11 години)

+def what_is_my_sign(day, month):
+ zodiac = {
+ range(321, 421): 'Овен',
+ range(421, 521): 'Телец',
+ range(521, 621): 'Близнаци',
+ range(621, 722): 'Рак',
+ range(722, 823): 'Лъв',
+ range(823, 923): 'Дева',
+ range(923, 1023): 'Везни',
+ range(1023, 1122): 'Скорпион',
+ range(1122, 1222): 'Стрелец',
+ range(101, 120): 'Козирог',
+ range(1222, 1232): 'Козирог',
+ range(120, 219): 'Водолей',
+ range(219, 321): 'Риби',
+ }
+ for date, sign in zodiac.items():
+ if(100 * month + day in date):
+ return sign
+ return False

Добро решение. Имам само три забелжки:

  • zodiac бих го изнесъл извън функцията като константа (SCREAMING_SNAKE_CASE), с правилен indent.
  • Скобите в if-а не са ти нужни
  • Няма нужда да връщаш False, ако не намери месец. Едно на ръка, че подразбиране ще върне None, а пък така или иначе не те интересува какво ще се случи ако не намери зодия. Очакваш валиден input.

Виктория обнови решението на 02.03.2013 10:09 (преди над 11 години)

-def what_is_my_sign(day, month):
- zodiac = {
+ZODIAC = {
range(321, 421): 'Овен',
range(421, 521): 'Телец',
range(521, 621): 'Близнаци',
range(621, 722): 'Рак',
range(722, 823): 'Лъв',
range(823, 923): 'Дева',
range(923, 1023): 'Везни',
range(1023, 1122): 'Скорпион',
range(1122, 1222): 'Стрелец',
range(101, 120): 'Козирог',
range(1222, 1232): 'Козирог',
range(120, 219): 'Водолей',
range(219, 321): 'Риби',
- }
- for date, sign in zodiac.items():
+}
- if(100 * month + day in date):
+
- return sign
+def what_is_my_sign(day, month):
- return False
+ for date, sign in ZODIAC.items():
+ if 100*month + day in date:
+ return sign

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

ZODIAC = {
range(321, 421): 'Овен',
range(421, 521): 'Телец',
range(521, 621): 'Близнаци',
range(621, 722): 'Рак',
range(722, 823): 'Лъв',
range(823, 923): 'Дева',
range(923, 1023): 'Везни',
range(1023, 1122): 'Скорпион',
range(1122, 1222): 'Стрелец',
range(101, 120): 'Козирог',
range(1222, 1232): 'Козирог',
range(120, 219): 'Водолей',
range(219, 321): 'Риби',
}
+
def what_is_my_sign(day, month):
for date, sign in ZODIAC.items():
if 100*month + day in date:
return sign