Цветомир обнови решението на 11.03.2015 15:03 (преди над 9 години)
+def interpret_western_sign(day, month):
+ sign = ''
+ if month == 3:
+ if day < 21:
+ sign = 'pisces'
+ else:
+ sign = 'aries';
+ elif month == 4:
+ if day < 21:
+ sign = 'aries'
+ else:
+ sign = 'taurus'
+
+ elif month == 5:
+ if day < 21:
+ sign = 'taurus'
+ else:
+ sign = 'gemini'
+ elif month == 6:
+ if day < 21:
+ sign = 'gemini'
+ else:
+ sign = 'cancer'
+ elif month == 7:
+ if day < 23:
+ sign = 'cancer'
+ else:
+ sign = 'leo'
+ elif month == 8:
+ if day < 23:
+ sign = 'leo'
+ else:
+ sign = 'virgo'
+ elif month == 9:
+ if day < 23:
+ sign = 'virgo'
+ else:
+ sign = 'libra'
+ elif month == 10:
+ if day < 23:
+ sign = 'libra'
+ else:
+ sign = 'scorpio'
+ elif month == 11:
+ if day < 22:
+ sign = 'scorpio'
+ else:
+ sign = 'sagittarius'
+ elif month == 12:
+ if day < 22:
+ sign = 'sagittarius'
+ else:
+ sign = 'capricorn'
+ elif month == 1:
+ if day < 21:
+ sign = 'capricorn'
+ else:
+ sign = 'aquarius'
+ elif month == 2:
+ if day < 19:
+ sign = 'aquarius'
+ else:
+ sign = 'pisces'
+ return sign
+
+def interpret_chinese_sign(year):
+ chinese_signs = {1900: 'rat', 1901: 'ox', 1902: 'tiger', 1903: 'rabbit', 1904: 'dragon', 1905: 'snake', 1906: 'horse', 1907:'sheep', 1908:'monkey', 1909:'rooster', 19010:'dog', 19011:'pig'}
+ s = 1900 + (year - 1900)%12
+ return chinese_signs[s]
+
+def interpret_both_signs(day, month, year):
+ western_sign = ''
+ if month == 3:
+ if day < 21:
+ western_sign = 'pisces'
+ else:
+ western_sign = 'aries';
+ elif month == 4:
+ if day < 21:
+ western_sign = 'aries'
+ else:
+ western_sign = 'taurus'
+ elif month == 5:
+ if day < 21:
+ western_sign = 'taurus'
+ else:
+ western_sign = 'gemini'
+ elif month == 6:
+ if day < 21:
+ western_sign = 'gemini'
+ else:
+ western_sign = 'cancer'
+ elif month == 7:
+ if day < 23:
+ western_sign = 'cancer'
+ else:
+ western_sign = 'leo'
+ elif month == 8:
+ if day < 23:
+ western_sign = 'leo'
+ else:
+ western_sign = 'virgo'
+ elif month == 9:
+ if day < 23:
+ western_sign = 'virgo'
+ else:
+ western_sign = 'libra'
+ elif month == 10:
+ if day < 23:
+ western_sign = 'libra'
+ else:
+ western_sign = 'scorpio'
+ elif month == 11:
+ if day < 22:
+ western_sign = 'scorpio'
+ else:
+ western_sign = 'sagittarius'
+ elif month == 12:
+ if day < 22:
+ western_sign = 'sagittarius'
+ else:
+ western_sign = 'capricorn'
+ elif month == 1:
+ if day < 21:
+ western_sign = 'capricorn'
+ else:
+ western_sign = 'aquarius'
+ elif month == 2:
+ if day < 19:
+ western_sign = 'aquarius'
+ else:
+ western_sign = 'pisces'
+
+ chinese_signs = {1900: 'rat', 1901: 'ox', 1902: 'tiger', 1903: 'rabbit', 1904: 'dragon', 1905: 'snake', 1906: 'horse', 1907:'sheep', 1908:'monkey', 1909:'rooster', 19010:'dog', 19011:'pig'}
+ chinese_sign = chinese_signs[1900 + (year - 1900)%12]
+ return (western_sign, chinese_sign)
Твоето решение ме заинтригува. Не само е най-дългото от всички предадени до тук, ами е в пъти по-дълго от повечето предадени ни такива.
След 8-мото copy -> paste на elif
, с още една if
конструкция вътре не ти ли се стори, че вършиш нещо грешно? А си играеш със всичко на всичко 24 зодии общо и за двете задачи. Ами ако бяха 300?
Освен това имаш ред дълъг 139 символа (при максимум позволени 79 в Python)... на две места... абсолютно еднакви... и то само 139, защото не си слагал нужните интервали навсякъде.
Дори нямам намерение да споменавам за останалите грешки в стила, които си допуснал и тулчето pep8 би ти ги посочило. Моля те, оправи си решението.