Красимир обнови решението на 08.03.2015 13:46 (преди над 9 години)
+def interpret_western_sign(day, month):
+ zodiacs = [
+ (120, 'capricorn'), (218, 'aquarius'), (320, 'pisces'),
+ (420, 'aries'), (520, 'taurus'), (620, 'gemini'),
+ (722, 'cancer'), (822, 'leo'), (922, 'virgo'),
+ (1022, 'libra'), (1121, 'scorpio'), (1221, 'sagittarius'),
+ (1231, 'capricorn')
+ ]
+
+ date_num = 100*month + day
+ for z in zodiacs:
+ if date_num <= z[0]:
+ return z[1]
+
+
+def interpret_chinese_sign(year):
+ chinese_zodiacs = [
+ (0, 'monkey'), (1, 'rooster'), (2, 'dog'),
+ (3, 'pig'), (4, 'rat'), (5, 'ox'),
+ (6, 'tiger'), (7, 'rabbit'), (8, 'dragon'),
+ (9, 'snake'), (10, 'horse'), (11, 'sheep')
+ ]
+ return chinese_zodiacs[year % 12][1]
+
+
+def interpret_both_signs(day, month, year):
+ return interpret_western_sign(day, month), interpret_chinese_sign(year)
Помисли за какво ползваш първия елемент на tuple-ите и виж дали не можеш да го направиш без тях.
Особено във втората функция можеш да си съкратиш писането :)