София обнови решението на 11.03.2015 15:33 (преди над 9 години)
+signs = {(tuple(range(21, 32)), 3): "aries",
+ (tuple(range(1, 21)), 4): "aries",
+ (tuple(range(21, 31)), 4): "taurus",
+ (tuple(range(1, 21)), 5): "taurus",
+ (tuple(range(21, 32)), 5): "gemini",
+ (tuple(range(1, 21)), 6): "gemini",
+ (tuple(range(21, 31)), 6): "cancer",
+ (tuple(range(1, 22)), 7): "cancer",
+ (tuple(range(22, 32)), 7): "leo",
+ (tuple(range(1, 23)), 8): "leo",
+ (tuple(range(23, 32)), 8): "virgo",
+ (tuple(range(1, 23)), 9): "virgo",
+ (tuple(range(23, 31)), 9): "libra",
+ (tuple(range(1, 23)), 10): "libra",
+ (tuple(range(23, 32)), 10): "scorpio",
+ (tuple(range(1, 22)), 11): "scorpio",
+ (tuple(range(22, 31)), 11): "sagittarius",
+ (tuple(range(1, 22)), 12): "sagittarius",
+ (tuple(range(22, 32)), 12): "capricorn",
+ (tuple(range(1, 20)), 1): "capricorn",
+ (tuple(range(20, 32)), 1): "aquarius",
+ (tuple(range(1, 19)), 2): "aquarius",
+ (tuple(range(19, 30)), 2): "pisces",
+ (tuple(range(1, 21)), 3): "pisces"}
+
+ch_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 key in signs.keys():
+ if month == key[1] and day in key[0]:
+ return signs[key]
+
+
+def interpret_chinese_sign(year):
+ index = (year - ch_signs[0][0]) % 12
+ return ch_signs[index][1]
+
+
+def interpret_both_signs(day, month, year):
+ return interpret_western_sign(day, month), interpret_chinese_sign(year)
- Имената на константите трябва да са в
SCREAMING_SNAKE_CASE
-
ch_signs
е лошо име, не е нужно да съкращаваш думите