Павел обнови решението на 09.03.2015 10:09 (преди над 9 години)
+def interpret_western_sign(day, month):
+ if (month == 1 and day >= 21) or (month == 2 and day <= 18):
+ return "aquarius"
+ elif (month == 2 and day >= 19) or (month == 3 and day <= 20):
+ return "pisces"
+ elif (month == 3 and day >= 21) or (month == 4 and day <= 20):
+ return "aries"
+ elif (month == 4 and day >= 21) or (month == 5 and day <= 20):
+ return "taurus"
+ elif (month == 5 and day >= 21) or (month == 6 and day <= 20):
+ return "gemini"
+ elif (month == 6 and day >= 21) or (month == 7 and day <= 22):
+ return "cancer"
+ elif (month == 7 and day >= 23) or (month == 8 and day <= 22):
+ return "leo"
+ elif (month == 8 and day >= 23) or (month == 9 and day <= 22):
+ return "virgo"
+ elif (month == 9 and day >= 23) or (month == 10 and day <= 22):
+ return "libra"
+ elif (month == 10 and day >= 23) or (month == 11 and day <= 21):
+ return "scorpio"
+ elif (month == 11 and day >= 22) or (month == 12 and day <= 21):
+ return "sagittarius"
+ elif (month == 12 and day >= 22) or (month == 1 and day <= 20):
+ return "capricorn"
+ else:
+ return "Invalid input"
+
+
+def interpret_chinese_sign(year):
+ if year % 12 == 4:
+ return "rat"
+ elif year % 12 == 5:
+ return "ox"
+ elif year % 12 == 6:
+ return "tiger"
+ elif year % 12 == 7:
+ return "rabbit"
+ elif year % 12 == 8:
+ return "dragon"
+ elif year % 12 == 9:
+ return "snake"
+ elif year % 12 == 10:
+ return "horse"
+ elif year % 12 == 11:
+ return "sheep"
+ elif year % 12 == 0:
+ return "monkey"
+ elif year % 12 == 1:
+ return "rooster"
+ elif year % 12 == 2:
+ return "dog"
+ elif year % 12 == 3:
+ return "pig"
+ else:
+ return "Invalid input"
+
+
+def interpret_both_signs(day, month, year):
+ western_sing = interpret_western_sign(day, month)
+ chinese_sing = interpret_chinese_sign(year)
+ return (western_sing, chinese_sing)
Можеш ли да избегнеш наличието на толкова много if
-ове? Представи си, че имаме 100 зодии и трябва да напишеш по един за всяка от тях :)