Георги обнови решението на 11.03.2015 02:27 (преди над 9 години)
+chinese_signs = ('rat', 'ox', 'tiger', 'rabbit', 'dragon', 'snake',
+ 'horse', 'sheep', 'monkey', 'rooster', 'dog', 'pig')
+
+western_signs = ((3, 21, 'aries'), (4, 21, 'taurus'),
+ (5, 21, 'gemini'), (6, 21, 'cancer'),
+ (7, 23, 'leo'), (8, 23, 'virgo'),
+ (9, 23, 'libra'), (10, 23, 'scorpio'),
+ (11, 22, 'sagittarius'), (12, 22, 'capricorn'),
+ (1, 21, 'aquarius'), (2, 19, 'pisces'))
+
+
+def interpret_chinese_sign(year):
+ return chinese_signs[(year - 4) % 12]
+
+
+def interpret_western_sign(day, month):
+ sign_edge = western_signs[-1]
+ for next_edge in western_signs:
+ if (sign_edge[0] is month and sign_edge[1] <= day
+ or next_edge[0] is month and next_edge[1] > day):
+ return sign_edge[2]
+ sign_edge = next_edge
+
+
+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)
Подравняването на елементите на 'кортежите' по този начин приемливо ли е? pep8 не ми направи проблем и съм виждал ваши примери от лекциите с изброени елементи по същия начин, но пък ме наплашихте достатъчно с минало-годишните идентации > 4, че да питам. :)
- Ако се съмняваш, винаги можеш да намериш какво пише в pep8, защото не всичко може да се провери автоматично :)
- Добре е, но имената на константите трябва да са в
SCREAMING_SNAKE_CASE