Решение на Астрологични забави от Илиян Якимов

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

Към профила на Илиян Якимов

Резултати

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

Код

zodiac_signs = {(21, 3, 20, 4): "aries", (21, 4, 20, 5): "taurus",
(21, 5, 20, 6): "gemini", (21, 6, 22, 7): "cancer",
(23, 7, 22, 8): "leo", (23, 8, 22, 9): "virgo",
(23, 9, 22, 10): "libra", (23, 10, 21, 11): "scorpio",
(22, 11, 21, 12): "sagittarius", (22, 12, 20, 1): "capricorn",
(21, 1, 18, 2): "aquarius", (19, 2, 20, 3): "pisces"}
chinese_zodiac_signs = {0: "rat", 1: "ox", 2: "tiger", 3: "rabbit",
4: "dragon", 5: "snake", 6: "horse", 7: "sheep",
8: "monkey", 9: "rooster", 10: "dog", 11: "pig"}
def interpret_western_sign(day, month):
for key in zodiac_signs:
if ((month == key[1] and day >= key[0])
or (month == key[3] and day <= key[2])):
return zodiac_signs[key]
def interpret_chinese_sign(year):
return chinese_zodiac_signs[(year - 1900) % 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 версии и 4 коментара)

Илиян обнови решението на 08.03.2015 22:57 (преди около 9 години)

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

Разгледай пак PEP8, виж как да научиш редактора/IDE-то си да те бие през ръцете, когато правиш нещо грешно.

Оправих някои от забележките. Трябва ли наново да изпращам решението си ?

П.С. И за ограничението до 79 символа на ред - имаме впредвид всякакви символи нали - интервали, интервали в стрингове и пр. ?

Трябва ли наново да изпращам решението си ? - Да. Предай го наново. Имаш право да подобряваш (препредаваш) решението си колкото пъти искаш, преди да е изтекъл крайния срок за предаване.

П.С. И за ограничението до 79 символа на ред - имаме впредвид всякакви символи нали - интервали, интервали в стрингове и пр. ? - Също да. Не ми казвай, че ги броиш наум!? Нагласи си едитора да те бие през ръцете и готово.

Илиян обнови решението на 09.03.2015 22:52 (преди около 9 години)

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