Решение на Астрологични забави от Михаел Димитров

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

Към профила на Михаел Димитров

Резултати

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

Код

def interpret_western_sign(day, month):
SIGNS_RANGE_MAP = {
'aries': ((3, 21), (4, 20)),
'taurus': ((4, 21), (5, 20)),
'gemini': ((5, 21), (6, 20)),
'cancer': ((6, 21), (7, 22)),
'leo': ((7, 23), (8, 22)),
'virgo': ((8, 23), (9, 22)),
'libra': ((9, 23), (10, 22)),
'scorpio': ((10, 23), (11, 21)),
'sagittarius': ((11, 22), (12, 21)),
'capricorn': ((12, 22), (1, 20)),
'aquarius': ((1, 21), (2, 18)),
'pisces': ((2, 19), (3, 20))
}
for sign, dates in SIGNS_RANGE_MAP.items():
if dates[0] < (month, day) < dates[1]:
return sign
return 'invalid date arguments'
def interpret_chinese_sign(year):
START_YEAR = 1900
SIGNS_LIST = [
'rat',
'ox',
'tiger',
'rabbit',
'dragon',
'snake',
'horse',
'sheep',
'monkey',
'rooster',
'dog',
'pig'
]
return SIGNS_LIST[(year - START_YEAR) % len(SIGNS_LIST)]
def interpret_both_signs(day, month, year):
return interpret_western_sign(day, month), interpret_chinese_sign(year)

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

......
----------------------------------------------------------------------
Ran 6 tests in 0.006s

OK

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

Михаел обнови решението на 10.03.2015 22:37 (преди над 9 години)

+def interpret_western_sign(day, month):
+ SIGNS_RANGE_MAP = {
+ 'aries': ((3, 21), (4, 20)),
+ 'taurus': ((4, 21), (5, 20)),
+ 'gemini': ((5, 21), (6, 20)),
+ 'cancer': ((6, 21), (7, 22)),
+ 'leo': ((7, 23), (8, 22)),
+ 'virgo': ((8, 23), (9, 22)),
+ 'libra': ((9, 23), (10, 22)),
+ 'scorpio': ((10, 23), (11, 21)),
+ 'sagittarius': ((11, 22), (12, 21)),
+ 'capricorn': ((12, 22), (1, 20)),
+ 'aquarius': ((1, 21), (2, 18)),
+ 'pisces': ((2, 19), (3, 20))
+ }
+
+ for sign, dates in SIGNS_RANGE_MAP.items():
+ if dates[0] < (month, day) < dates[1]:
+ return sign
+
+ return 'invalid date arguments'
+
+
+def interpret_chinese_sign(year):
+ START_YEAR = 1900
+ SIGNS_LIST = [
+ 'rat',
+ 'ox',
+ 'tiger',
+ 'rabbit',
+ 'dragon',
+ 'snake',
+ 'horse',
+ 'sheep',
+ 'monkey',
+ 'rooster',
+ 'dog',
+ 'pig'
+ ]
+ return SIGNS_LIST[(year - START_YEAR) % len(SIGNS_LIST)]
+
+
+def interpret_both_signs(day, month, year):
+ return interpret_western_sign(day, month), interpret_chinese_sign(year)