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

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

Към профила на Гален Георгиев

Резултати

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

Код

def interpret_western_sign ( day, month ):
signs = [
{ "limit": 21, "sign":
[ "capricorn", "aquarius" ] },
{ "limit": 19, "sign":
[ "aquarius", "pisces" ] },
{ "limit": 21, "sign":
[ "pisces", "aries" ] },
{ "limit": 21, "sign":
[ "aries", "taurus" ] },
{ "limit": 21, "sign":
[ "taurus", "gemini" ] },
{ "limit": 21, "sign":
[ "gemini", "cancer" ] },
{ "limit": 23, "sign":
[ "cancer", "leo" ] },
{ "limit": 23, "sign":
[ "leo", "virgo" ] },
{ "limit": 23, "sign":
[ "virgo", "libra" ] },
{ "limit": 23, "sign":
[ "libra", "scorpio" ] },
{ "limit": 22, "sign":
[ "scorpio", "sagittarius" ] },
{ "limit": 22, "sign":
[ "sagittarius", "capricorn" ] }
]
if day < signs[month - 1]["limit"]:
return signs[month - 1]["sign"][0]
return signs[month - 1]["sign"][1]
def interpret_chinese_sign ( year ):
y = ( year - 1900 ) % 12;
zodiak = [ "rat", "ox", "tiger", "rabbit", "dragon", "snake", "horse", "sheep", "monkey", "rooster", "dog", "pig" ];
return zodiak[y]
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 коментара)

Гален обнови решението на 06.03.2015 23:56 (преди около 9 години)

+import unittest
+
+class solution:
+ def interpret_western_sign ( day, month ):
+ signs = [
+ { "limit": 21, "sign": [ "capricorn", "aquarius" ] },
+ { "limit": 19, "sign": [ "aquarius", "pisces" ] },
+ { "limit": 21, "sign": [ "pisces", "aries" ] },
+ { "limit": 21, "sign": [ "aries", "taurus" ] },
+ { "limit": 21, "sign": [ "taurus", "gemini" ] },
+ { "limit": 21, "sign": [ "gemini", "cancer" ] },
+ { "limit": 23, "sign": [ "cancer", "leo" ] },
+ { "limit": 23, "sign": [ "leo", "virgo" ] },
+ { "limit": 23, "sign": [ "virgo", "libra" ] },
+ { "limit": 23, "sign": [ "libra", "scorpio" ] },
+ { "limit": 22, "sign": [ "scorpio", "sagittarius" ] },
+ { "limit": 22, "sign": [ "sagittarius", "capricorn" ] }
+ ]
+
+ if day < signs[month - 1]["limit"]: return signs[month - 1]["sign"][0]
+ return signs[month - 1]["sign"][1]
+
+ def interpret_chinese_sign ( year ):
+ y = ( year - 1900 ) % 12;
+
+ zodiak = [ "rat", "ox", "tiger", "rabbit", "dragon", "snake", "horse", "sheep", "monkey", "rooster", "dog", "pig" ];
+
+ return zodiak[y]
+
+ def interpret_both_signs ( day, month, year ):
+ return ( solution.interpret_western_sign ( day, month ), solution.interpret_chinese_sign ( year ) )
  • Няма смисъл да import-ваш unittest в решението си.
  • Нужно е файлът с решението на локалната ти машина да се казва solution.py и в него да имаш функциите кръстени по съответния начин, за да работи примерния тест. С class, който се казва solution и методи в него тестовете няма да минат.
  • Индентацията ти е силно грешна. Всеки блок трябва да се индентира с 4 space-а.

Всеки език и общността около него дефинира какво е въпрос на стил и какво е задължителна част от начина, по който е редно да пише код.

В python възприетия стандат а pep8. Искаме да следвате всички препоръки описани в него, тъй като това е въприетата конвенция за писане на python код.

Освен, че кодът ти не покрива PEP8 имаш една голяма грешка, заради която няма да получиш никакви точки - грешно е да имаш class solution. Пусни си и примерният тест, както ти е написал Евгени.

Гален обнови решението на 09.03.2015 15:07 (преди около 9 години)

-import unittest
+def interpret_western_sign ( day, month ):
+ signs = [
+ { "limit": 21, "sign":
+ [ "capricorn", "aquarius" ] },
+ { "limit": 19, "sign":
+ [ "aquarius", "pisces" ] },
+ { "limit": 21, "sign":
+ [ "pisces", "aries" ] },
+ { "limit": 21, "sign":
+ [ "aries", "taurus" ] },
+ { "limit": 21, "sign":
+ [ "taurus", "gemini" ] },
+ { "limit": 21, "sign":
+ [ "gemini", "cancer" ] },
+ { "limit": 23, "sign":
+ [ "cancer", "leo" ] },
+ { "limit": 23, "sign":
+ [ "leo", "virgo" ] },
+ { "limit": 23, "sign":
+ [ "virgo", "libra" ] },
+ { "limit": 23, "sign":
+ [ "libra", "scorpio" ] },
+ { "limit": 22, "sign":
+ [ "scorpio", "sagittarius" ] },
+ { "limit": 22, "sign":
+ [ "sagittarius", "capricorn" ] }
+ ]
-class solution:
- def interpret_western_sign ( day, month ):
- signs = [
- { "limit": 21, "sign": [ "capricorn", "aquarius" ] },
- { "limit": 19, "sign": [ "aquarius", "pisces" ] },
- { "limit": 21, "sign": [ "pisces", "aries" ] },
- { "limit": 21, "sign": [ "aries", "taurus" ] },
- { "limit": 21, "sign": [ "taurus", "gemini" ] },
- { "limit": 21, "sign": [ "gemini", "cancer" ] },
- { "limit": 23, "sign": [ "cancer", "leo" ] },
- { "limit": 23, "sign": [ "leo", "virgo" ] },
- { "limit": 23, "sign": [ "virgo", "libra" ] },
- { "limit": 23, "sign": [ "libra", "scorpio" ] },
- { "limit": 22, "sign": [ "scorpio", "sagittarius" ] },
- { "limit": 22, "sign": [ "sagittarius", "capricorn" ] }
- ]
+ if day < signs[month - 1]["limit"]:
+ return signs[month - 1]["sign"][0]
+ return signs[month - 1]["sign"][1]
- if day < signs[month - 1]["limit"]: return signs[month - 1]["sign"][0]
- return signs[month - 1]["sign"][1]
+def interpret_chinese_sign ( year ):
+ y = ( year - 1900 ) % 12;
+
+ zodiak = [ "rat", "ox", "tiger", "rabbit", "dragon", "snake", "horse", "sheep", "monkey", "rooster", "dog", "pig" ];
- def interpret_chinese_sign ( year ):
- y = ( year - 1900 ) % 12;
+ return zodiak[y]
- zodiak = [ "rat", "ox", "tiger", "rabbit", "dragon", "snake", "horse", "sheep", "monkey", "rooster", "dog", "pig" ];
-
+def interpret_both_signs ( day, month, year ):
- return zodiak[y]
+ return ( interpret_western_sign ( day, month ), interpret_chinese_sign ( year ) )
-
- def interpret_both_signs ( day, month, year ):
- return ( solution.interpret_western_sign ( day, month ), solution.interpret_chinese_sign ( year ) )