Решение на Хороскоп от Ралица Маркова

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

Към профила на Ралица Маркова

Резултати

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

Код

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

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

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

OK

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

Ралица обнови решението на 04.03.2013 00:53 (преди над 11 години)

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

Ралица обнови решението на 04.03.2013 11:31 (преди над 11 години)

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

Аз бих индикирирал, че тези '[ден, месец, ден, месец]' не са четворки от равноправни числа може би като ги направя двойка от двойките ((месец, ден), (месец, ден)). Без особено значение в подредбата на вътрешната двойка, но (месец, ден) ще ти позволи директно правилно сравнение от рода:

if value[0] <= (month, day) <= value[1]:
    return key