Решение на Астрологични забави от Симеон Кръстев

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

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

Резултати

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

Код

def interpret_western_sign(day, month):
signs = [
('capricorn', 22),
('aquarius', 21),
('pisces', 19),
('aries', 21),
('taurus', 21),
('gemini', 21),
('cancer', 21),
('leo', 23),
('virgo', 23),
('libra', 23),
('scorpio', 23),
('sagittarius', 22),
]
matched_sign = signs[month]
if day >= matched_sign[1]:
return matched_sign[0]
else:
return signs[(month-1) % 12][0]
def interpret_chinese_sign(year):
signs = [
'rat',
'ox',
'tiger',
'rabbit',
'dragon',
'snake',
'horse',
'sheep',
'monkey',
'rooster',
'dog',
'pig',
]
return signs[(year - 1900) % 12]
def interpret_both_signs(day, month, year):
western_sign = interpret_western_sign(day, month)
chinese_sign = interpret_chinese_sign(year)
return western_sign, chinese_sign

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

......
----------------------------------------------------------------------
Ran 6 tests in 0.007s

OK

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

Симеон обнови решението на 10.03.2015 20:37 (преди над 9 години)

+def interpret_western_sign(day, month):
+ signs = [
+ ('capricorn', 22),
+ ('aquarius', 21),
+ ('pisces', 19),
+ ('aries', 21),
+ ('taurus', 21),
+ ('gemini', 21),
+ ('cancer', 21),
+ ('leo', 23),
+ ('virgo', 23),
+ ('libra', 23),
+ ('scorpio', 23),
+ ('sagittarius', 22),
+ ]
+
+ matched_sign = signs[month]
+
+ if day >= matched_sign[1]:
+ return matched_sign[0]
+ else:
+ return signs[(month-1) % 12][0]
+
+def interpret_chinese_sign(year):
+ signs = [
+ 'rat',
+ 'ox',
+ 'tiger',
+ 'rabbit',
+ 'dragon',
+ 'snake',
+ 'horse',
+ 'sheep',
+ 'monkey',
+ 'rooster',
+ 'dog',
+ 'pig',
+ ]
+
+ return signs[(year - 1900) % 12]
+
+def interpret_both_signs(day, month, year):
+ western_sign = interpret_western_sign(day, month)
+ chinese_sign = interpret_chinese_sign(year)
+ return western_sign, chinese_sign