Виктория обнови решението на 10.03.2015 01:24 (преди над 9 години)
+import collections
+
+def interpret_chinese_sign(year):
+ arr = ['monkey', 'rooster', 'dog', 'pig',
+ 'rat', 'ox', 'tiger', 'rabbit',
+ 'dragon', 'snake', 'horse', 'sheep']
+ return(arr[year % 12])
+
+def interpret_western_sign(day, month):
+ signs = {'aquarius': 219, 'pisces': 321, 'aries': 421, 'taurus': 521,
+ 'gemini': 621, 'cancer': 723, 'leo': 823, 'virgo': 923,
+ 'libra': 1023, 'scorpio': 1122, 'sagittarius': 1222}
+ signs = collections.OrderedDict(sorted(signs.items(), key=lambda t: t[1]))
+ x = month*100 + day
+ for key, value in signs.items():
+ if x < value and x > 120:
+ return key
+ return 'capricorn'
+
+def interpret_both_signs(day, month, year):
+ return (interpret_western_sign(day, month), interpret_chinese_sign(year))
-
arr
е лошо име на променлива.chinese_zodiac
е по-добре. аCHINESE_ZODIAC
като константа изнесено извън функцията е най. - ако ще ползваш само OrderedDict от collections може да напишеш
from collections import OrderedDict
(това може и да го знаеш, но just in case да го кажа) - готино е, че си видяла как се ползва и си го ползвала, но сигурна ли си че имаш нужда от
OrderedDict
въобще? - отделяй глобално дефинираните функции с 2 празни реда