Решение на Астрологични забави от Aнтония Чекръкчиева

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

Към профила на Aнтония Чекръкчиева

Резултати

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

Код

WESTERN_SIGNS = [
((1, 20), 'capricorn'),
((2, 18), 'aquarius'),
((3, 20), 'pisces'),
((4, 20), 'aries'),
((5, 20), 'taurus'),
((6, 20), 'gemini'),
((7, 22), 'cancer'),
((8, 22), 'leo'),
((9, 22), 'virgo'),
((10, 22), 'libra'),
((11, 21), 'scorpio'),
((12, 21), 'sagittarius'),
((13, 0), 'capricorn'),
]
CHINESE_SIGNS = [
(1900, 'rat'),
(1901, 'ox'),
(1902, 'tiger'),
(1903, 'rabbit'),
(1904, 'dragon'),
(1905, 'snake'),
(1906, 'horse'),
(1907, 'sheep'),
(1908, 'monkey'),
(1909, 'rooster'),
(1910, 'dog'),
(1911, 'pig'),
]
def interpret_western_sign(day, month):
for end_date, sign in WESTERN_SIGNS:
if (month, day) <= end_date:
return sign
def interpret_chinese_sign(year):
for sign_year, sign in CHINESE_SIGNS:
if (year - sign_year) % 12 == 0:
return sign
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 коментара)

Aнтония обнови решението на 06.03.2015 21:12 (преди около 9 години)

+WESTERN_SIGNS = [
+ ((1, 20), 'capricorn'),
+ ((2, 18), 'aquarius'),
+ ((3, 20), 'pisces'),
+ ((4, 20), 'aries'),
+ ((5, 20), 'taurus'),
+ ((6, 20), 'gemini'),
+ ((7, 22), 'cancer'),
+ ((8, 22), 'leo'),
+ ((9, 22), 'virgo'),
+ ((10, 22), 'libra'),
+ ((11, 21), 'scorpio'),
+ ((12, 21), 'sagittarius'),
+ ((13, 0), 'capricorn'),
+]
+
+CHINESE_SIGNS = [
+ (1900, 'rat'),
+ (1901, 'ox'),
+ (1902, 'tiger'),
+ (1903, 'rabbit'),
+ (1904, 'dragon'),
+ (1905, 'snake'),
+ (1906, 'horse'),
+ (1907, 'sheep'),
+ (1908, 'monkey'),
+ (1909, 'rooster'),
+ (1910, 'dog'),
+ (1911, 'pig'),
+]
+
+def interpret_western_sign(day, month):
+ for end_date, sign in WESTERN_SIGNS:
+ if (month, day) <= end_date:
+ return sign
+
+
+
+def interpret_chinese_sign(year):
+ for sign_year, sign in CHINESE_SIGNS:
+ if (year - sign_year) % 12 == 0:
+ return sign
+
+
+def interpret_both_signs(day, month, year):
+ return (interpret_western_sign(day, month), interpret_chinese_sign(year))