Любомир обнови решението на 08.03.2015 23:16 (преди над 9 години)
+def interpret_western_sign(day, month):
+
+ if month == 1:
+ if day >= 21:
+ return "aquarius"
+ else:
+ return "capricorn"
+
+ elif month == 2:
+ if day >= 19:
+ return "pisces"
+ else:
+ return "aquarius"
+
+ elif month == 3:
+ if day >= 21:
+ return "aries"
+ else:
+ return "pisces"
+
+ elif month == 4:
+ if day >= 21:
+ return "taurus"
+ else:
+ return "aries"
+
+ elif month == 5:
+ if day >= 21:
+ return "gemini"
+ else:
+ return "taurus"
+
+ elif month == 6:
+ if day >= 21:
+ return "cancer"
+ else:
+ return "gemini"
+
+ elif month == 7:
+ if day >= 23:
+ return "leo"
+ else:
+ return "cancer"
+
+ elif month == 8:
+ if day >= 23:
+ return "virgo"
+ else:
+ return "leo"
+
+ elif month == 9:
+ if day >= 23:
+ return "libra"
+ else:
+ return "virgo"
+
+ elif month == 10:
+ if day >= 23:
+ return "scorpio"
+ else:
+ return "libra"
+
+ elif month == 11:
+ if day >= 22:
+ return "sagittarius"
+ else:
+ return "scorpio"
+
+ elif month == 12:
+ if day >= 22:
+ return "capricorn"
+ else:
+ return "sagittarius"
+
+ else:
+ return "unknown"
+
+def interpret_chinese_sign(year):
+ zodiac = {
+ 1900: "rat",
+ 1901: "ox",
+ 1902: "tiger",
+ 1903: "rabbit",
+ 1904: "dragon",
+ 1905: "snake",
+ 1906: "horse",
+ 1907: "sheep",
+ 1908: "monkey",
+ 1909: "rooster",
+ 1910: "dog",
+ 1911: "pig",
+ }
+
+ start = 1900
+ index = start + ((year - start) % 12)
+ return zodiac[index]
+
+def interpret_both_signs(day, month, year):
+ western_sign = interpret_western_sign(day, month)
+ chinese_sign = interpret_chinese_sign(year)
+ return (western_sign, chinese_sign)
Решението ти за interpret_chinese_sign
е много добро, като препоръка за него може да изнесеш zodiac
като глобална константа за файла, вместо да се дефинира вътре във функцията.
И именно защото ми харесва как си решил interpret_chinese_sign
се чудя защо не си направил нещо подобно за interpret_western_sign
ами си прибягнал до тоя куц похват с if/else-овете :)