Решение на Хороскоп от Георги Харизанов

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

Към профила на Георги Харизанов

Резултати

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

Код

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

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

...F...........
======================================================================
FAIL: test_capricorn (test.HoroscopeTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/tmp/d20130307-16279-4i2d06/test.py", line 35, in test_capricorn
    self.assertEqual(solution.what_is_my_sign(1, 1), 'Козирог')
AssertionError: None != 'Козирог'

----------------------------------------------------------------------
Ran 15 tests in 0.003s

FAILED (failures=1)

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

Георги обнови решението на 04.03.2013 11:18 (преди над 11 години)

+signs = dict()
+signs["Водолей"] = [(range(20,32),1),(range(1,19),2)]
+signs["Риби"] = [(range(19,29),2),(range(1,21),3)]
+signs["Овен"] = [(range(21,32),3),(range(1,21),4)]
+signs["Телец"] = [(range(21,31),4),(range(1,21),5)]
+signs["Близнаци"] = [(range(21,32),5),(range(1,21),6)]
+signs["Рак"] = [(range(21,31),6),(range(1,22),7)]
+signs["Лъв"] = [(range(22,32),7),(range(1,23),8)]
+signs["Дева"] = [(range(23,32),8),(range(1,23),9)]
+signs["Везни"] = [(range(23,31),9),(range(1,23),10)]
+signs["Скорпион"] = [(range(23,32),10),(range(1,22),11)]
+signs["Стрелец"] = [(range(22,31),11),(range(1,22),12)]
+signs["Козирог"] = [(range(22,32),12),(range(1,20),12)]
+
+def what_is_my_sign(day,month):
+ for sign in signs.keys():
+ current = signs[sign]
+ if current[0][1] == month and day in list(current[0][0]):
+ return sign
+ if current[1][1] == month and day in list(current[1][0]):
+ return sign
  • Не инициализирай речниците като в Java. Показахме ви литералния синтаксис за целта.
  • Защо е нужно да кастваш range-а към list в двата if-а?
  • for sign in signs.keys() и for sign in signs правят едно и също. Нямаш нужда от keys в този случай.