Решение на Астрологични забави от Тихомир Кожухарски

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

Към профила на Тихомир Кожухарски

Резултати

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

Код

WESTERN_SIGNS = (
{'name': 'capricorn', 'till': 20},
{'name': 'aquarius', 'till': 19},
{'name': 'pisces', 'till': 20},
{'name': 'aries', 'till': 20},
{'name': 'taurus', 'till': 20},
{'name': 'gemini', 'till': 20},
{'name': 'cancer', 'till': 22},
{'name': 'leo', 'till': 22},
{'name': 'virgo', 'till': 22},
{'name': 'libra', 'till': 22},
{'name': 'scorpio', 'till': 21},
{'name': 'sagittarius', 'till': 21}
)
WESTERN_SIGNS_LEN = len(WESTERN_SIGNS)
CHINESE_SIGNS = (
'rat', 'ox', 'tiger', 'rabbit', 'dragon', 'snake', 'horse',
'sheep', 'monkey', 'rooster', 'dog', 'pig'
)
CHINESE_SIGNS_LEN = len(CHINESE_SIGNS)
CHINESE_SIGNS_STARTING_YEAR = 1900
def interpret_western_sign(day, month):
sign = WESTERN_SIGNS[month - 1]
if sign['till'] < day:
sign = WESTERN_SIGNS[month % WESTERN_SIGNS_LEN]
return sign['name']
def interpret_chinese_sign(year):
signIndex = (year - CHINESE_SIGNS_STARTING_YEAR) % CHINESE_SIGNS_LEN
return CHINESE_SIGNS[signIndex]
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 коментара)

Тихомир обнови решението на 08.03.2015 20:47 (преди около 9 години)

+WESTERN_SIGNS = (
+ {'name': 'capricorn', 'till': 20},
+ {'name': 'aquarius', 'till': 19},
+ {'name': 'pisces', 'till': 20},
+ {'name': 'aries', 'till': 20},
+ {'name': 'taurus', 'till': 20},
+ {'name': 'gemini', 'till': 20},
+ {'name': 'cancer', 'till': 22},
+ {'name': 'leo', 'till': 22},
+ {'name': 'virgo', 'till': 22},
+ {'name': 'libra', 'till': 22},
+ {'name': 'scorpio', 'till': 21},
+ {'name': 'sagittarius', 'till': 21}
+)
+WESTERN_SIGNS_LEN = len(WESTERN_SIGNS)
+
+CHINESE_SIGNS = (
+ 'rat', 'ox', 'tiger', 'rabbit', 'dragon', 'snake', 'horse',
+ 'sheep', 'monkey', 'rooster', 'dog', 'pig'
+)
+CHINESE_SIGNS_LEN = len(CHINESE_SIGNS)
+CHINESE_SIGNS_STARTING_YEAR = 1900
+
+
+def interpret_western_sign(day, month):
+
+ sign = WESTERN_SIGNS[month - 1]
+ if sign['till'] < day:
+ sign = WESTERN_SIGNS[month % WESTERN_SIGNS_LEN]
+ return sign['name']
+
+
+def interpret_chinese_sign(year):
+ signIndex = (year - CHINESE_SIGNS_STARTING_YEAR) % CHINESE_SIGNS_LEN
+ return CHINESE_SIGNS[signIndex]
+
+
+def interpret_both_signs(day, month, year):
+ return (
+ interpret_western_sign(day, month),
+ interpret_chinese_sign(year)
+ )