Цветан обнови решението на 07.03.2015 15:01 (преди над 9 години)
+def interpret_western_sign(day, month):
+ options = [['capricorn', 'aquarius', 20], ['aquarius', 'pisces', 19], ['pisces', 'aries', 20], ['aries', 'taurus', 20], ['taurus', 'gemini', 20],
+ ['gemini', 'cancer', 20], ['cancer', 'leo', 22], ['leo', 'virgo', 22], ['virgo', 'libra', 22], ['libra', 'scorpio', 22], ['scorpio', 'sagittarius', 21],
+ ['sagittarius', 'capricorn', 21]]
+ if day <= options[month - 1][2]:
+ return options[month - 1][0]
+ return options[month - 1][1]
+
+def find_remainder(year):
+ year_help = year - 1900
+ return year_help % 12
+
+def interpret_chinese_sign(year):
+ options = {0 : 'rat', 1 : 'ox', 2 : 'tiger', 3 : 'rabbit', 4 : 'dragon', 5 : 'snake', 6 : 'horse', 7 : 'sheep', 8 : 'monkey', 9 : 'rooster', 10 : 'dog', 11 : 'pig'}
+ for code, name in options.items():
+ if code == find_remainder(year):
+ return name
+
+
+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)
- в Python се ползват 4 спейса идентация. В момента ползваш 8.
- нека всички редове от решението станат под 79 символа дължина
- отделяй глобално дефинираните функции с 2 празни реда, така както си направил с
interpret_both_signs
- речник с ключове последователни цели числа не ти ли напомня силно на един друг вид структура?
- ако все пак решиш да ползваш речник, имай предвид че интервал се поставя само след
:
. Премахни интервалите пред двуеточията. - аз лично бих дал по дескриптивно име от
options
. Напримерchinese_zodiac
иwestern_zodiac
Благодаря за корекциите. Ще направя някои промени, но относно идентацията си нямам на идея защо се е изпратило като 8 space-a, като в редактора, който съм писал си е 4.