Решение на Астрологични забави от Явор Миндов

Обратно към всички решения

Към профила на Явор Миндов

Резултати

  • 10 точки от тестове
  • 0 бонус точки
  • 10 точки общо
  • 6 успешни тест(а)
  • 0 неуспешни тест(а)

Код

def interpret_western_sign(day, month):
western_sign = {"aquarius": [(1, 21), (2, 19)],
"pisces": [(2, 20), (3, 20)],
"aries": [(3, 21), (4, 20)],
"taurus": [(4, 21), (5, 20)],
"gemini": [(5, 21), (6, 20)],
"cancer": [(6, 21), (7, 22)],
"leo": [(7, 23), (8, 22)],
"virgo": [(8, 23), (9, 22)],
"libra": [(9, 23), (10, 22)],
"scorpio": [(10, 23), (11, 21)],
"sagittarius": [(11, 22), (12, 21)],
"capricorn": [(12, 22), (1, 20)]
}
for sign, periods in western_sign.items():
if ((periods[0][0] == month) and (periods[0][1] <= day))\
or ((periods[1][0] == month) and (periods[1][1] >= day)):
return sign
def interpret_chinese_sign(year):
chinese_signs = ["monkey", "rooster", "dog",
"pig", "rat", "ox", "tiger",
"rabbit", "dragon", "snake",
"horse", "sheep"]
return chinese_signs[year % 12]
def interpret_both_signs(day, month, year):
return (interpret_western_sign(day, month), interpret_chinese_sign(year))

Лог от изпълнението

......
----------------------------------------------------------------------
Ran 6 tests in 0.006s

OK

История (2 версии и 1 коментар)

Явор обнови решението на 11.03.2015 14:59 (преди над 9 години)

+def interpret_western_sign(day, month):
+ western_sign = { "aquarius" : [(1,21),(2,19)],
+ "pisces" : [(2,20),(3,20)],
+ "aries" : [(3,21),(4,20)],
+ "taurus" : [(4,21),(5,20)],
+ "gemini" : [(5,21),(6,20)],
+ "cancer" : [(6,21),(7,22)],
+ "leo" : [(7,23),(8,22)],
+ "virgo" : [(8,23),(9,22)],
+ "libra" : [(9,23),(10,22)],
+ "scorpio" : [(10,23),(11,21)],
+ "sagittarius":[(11,22),(12,21)],
+ "capricorn" : [(12,22),(1,20)]
+ }
+ for sign, periods in western_sign.items():
+ if ((periods[0][0]==month) and (periods[0][1]<=day))or((periods[1][0]==month) and (periods[1][1]>=day)):
+ return sign
+
+def interpret_chinese_sign(year):
+ chinese_signs = ["monkey","rooster", "dog", "pig","rat","ox","tiger","rabbit", "dragon","snake", "horse", "sheep"]
+ return chinese_signs[year%12]
+
+def interpret_both_signs(day, month, year):
+ return (interpret_western_sign(day, month),interpret_chinese_sign(year))
  • отделяй глобално дефинираните функции с 2 празни реда
  • недей подравнява така :-ята в western_sign. Оставя се един интервал след : и 0 отпред.
  • имаш редове по дълги от 79 символа, а не трябва
  • след всяка запетая в chinese_signs трябва да има интервалче
  • около повечето оператори на ред 16 трябва да оставяш интервали

Прилично решение! Мой съвет, използвай някой PEP8 валидатор online (виж форума), за да дооправиш горните неща (преди крайния срок). След това си нагласи едитора да ги следи автоматично.

Явор обнови решението на 11.03.2015 15:46 (преди над 9 години)

def interpret_western_sign(day, month):
- western_sign = { "aquarius" : [(1,21),(2,19)],
- "pisces" : [(2,20),(3,20)],
- "aries" : [(3,21),(4,20)],
- "taurus" : [(4,21),(5,20)],
- "gemini" : [(5,21),(6,20)],
- "cancer" : [(6,21),(7,22)],
- "leo" : [(7,23),(8,22)],
- "virgo" : [(8,23),(9,22)],
- "libra" : [(9,23),(10,22)],
- "scorpio" : [(10,23),(11,21)],
- "sagittarius":[(11,22),(12,21)],
- "capricorn" : [(12,22),(1,20)]
- }
+ western_sign = {"aquarius": [(1, 21), (2, 19)],
+ "pisces": [(2, 20), (3, 20)],
+ "aries": [(3, 21), (4, 20)],
+ "taurus": [(4, 21), (5, 20)],
+ "gemini": [(5, 21), (6, 20)],
+ "cancer": [(6, 21), (7, 22)],
+ "leo": [(7, 23), (8, 22)],
+ "virgo": [(8, 23), (9, 22)],
+ "libra": [(9, 23), (10, 22)],
+ "scorpio": [(10, 23), (11, 21)],
+ "sagittarius": [(11, 22), (12, 21)],
+ "capricorn": [(12, 22), (1, 20)]
+ }
for sign, periods in western_sign.items():
- if ((periods[0][0]==month) and (periods[0][1]<=day))or((periods[1][0]==month) and (periods[1][1]>=day)):
+ if ((periods[0][0] == month) and (periods[0][1] <= day))\
+ or ((periods[1][0] == month) and (periods[1][1] >= day)):
return sign
+
def interpret_chinese_sign(year):
- chinese_signs = ["monkey","rooster", "dog", "pig","rat","ox","tiger","rabbit", "dragon","snake", "horse", "sheep"]
- return chinese_signs[year%12]
+ chinese_signs = ["monkey", "rooster", "dog",
+ "pig", "rat", "ox", "tiger",
+ "rabbit", "dragon", "snake",
+ "horse", "sheep"]
+ return chinese_signs[year % 12]
+
def interpret_both_signs(day, month, year):
- return (interpret_western_sign(day, month),interpret_chinese_sign(year))
+ return (interpret_western_sign(day, month), interpret_chinese_sign(year))