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

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

Към профила на Васил Малчев

Резултати

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

Код

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

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

......
----------------------------------------------------------------------
Ran 6 tests in 0.008s

OK

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

Васил обнови решението на 11.03.2015 13:26 (преди около 9 години)

+western_signs = [
+ (21, 'capricorn', 'aquarius'),
+ (19, 'aquarius', 'pisces'),
+ (21, 'pisces', 'aries'),
+ (21, 'aries', 'taurus'),
+ (21, 'taurus', 'gemini'),
+ (21, 'gemini', 'cancer'),
+ (23, 'cancer', 'leo'),
+ (23, 'leo', 'virgo'),
+ (23, 'virgo', 'libra'),
+ (23, 'libra', 'scorpio'),
+ (22, 'scorpio', 'sagittarius'),
+ (22, 'sagittarius', 'capricorn')
+]
+
+chinese_signs = [
+ 'rat',
+ 'ox',
+ 'tiger',
+ 'rabbit',
+ 'dragon',
+ 'snake',
+ 'horse',
+ 'sheep',
+ 'monkey',
+ 'rooster',
+ 'dog',
+ 'pig'
+]
+
+
+def interpret_western_sign(day, month):
+ for month_index, day_delim_sign in enumerate(western_signs):
+ if month == (month_index + 1):
+ return (day_delim_sign[1] if day < day_delim_sign[0]
+ else day_delim_sign[2])
+ return 'Incorrect day/month'
+
+
+def interpret_chinese_sign(year):
+ return chinese_signs[(year - 1900) % 12]
+
+
+def interpret_both_signs(day, month, year):
+ return (interpret_western_sign(day, month), interpret_chinese_sign(year))

Васил обнови решението на 11.03.2015 14:02 (преди около 9 години)

western_signs = [
(21, 'capricorn', 'aquarius'),
(19, 'aquarius', 'pisces'),
(21, 'pisces', 'aries'),
(21, 'aries', 'taurus'),
(21, 'taurus', 'gemini'),
(21, 'gemini', 'cancer'),
(23, 'cancer', 'leo'),
(23, 'leo', 'virgo'),
(23, 'virgo', 'libra'),
(23, 'libra', 'scorpio'),
(22, 'scorpio', 'sagittarius'),
(22, 'sagittarius', 'capricorn')
]
chinese_signs = [
'rat',
'ox',
'tiger',
'rabbit',
'dragon',
'snake',
'horse',
'sheep',
'monkey',
'rooster',
'dog',
'pig'
]
def interpret_western_sign(day, month):
- for month_index, day_delim_sign in enumerate(western_signs):
- if month == (month_index + 1):
- return (day_delim_sign[1] if day < day_delim_sign[0]
- else day_delim_sign[2])
- return 'Incorrect day/month'
-
-
+ return (western_signs[month - 1][1] if day < western_signs[month - 1][0]
+ else western_signs[month - 1][2])
+
+
def interpret_chinese_sign(year):
return chinese_signs[(year - 1900) % 12]
def interpret_both_signs(day, month, year):
- return (interpret_western_sign(day, month), interpret_chinese_sign(year))
+ return (interpret_western_sign(day, month), interpret_chinese_sign(year))