Гален обнови решението на 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-а.
Не го съобразих това за първите 2 подточки, понеже си пусках тестовете от същия файл. Това за идентацията не го разбрах много? Не опира ли до стил на писане?
Всеки език и общността около него дефинира какво е въпрос на стил и какво е задължителна част от начина, по който е редно да пише код.
В python възприетия стандат а pep8. Искаме да следвате всички препоръки описани в него, тъй като това е въприетата конвенция за писане на python код.
Освен, че кодът ти не покрива PEP8 имаш една голяма грешка, заради която няма да получиш никакви точки - грешно е да имаш class solution
. Пусни си и примерният тест, както ти е написал Евгени.