Решение на Ретроспекция от Нели Хатева

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

Към профила на Нели Хатева

Резултати

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

Код

REPOSITORY = 'https://github.com/nelly-hateva/python-homeworks/tree/master/Homeworks'
# Двадесет неща, които научих:
#
# 1. Научих, че обекти, които не се изменят (като списъкът от интервалите
# за зодиакалните знаци в първа задача или като почти всички обекти от
# задачата за Морския шах), е добре да бъдат константи (с главни букви).
# 2. Научих, че константите се пишат извън тялото на функциите.
# 3. Научих, че двойките ключ - стойност в речник се итерират с items().
# 4. Науччих, че, за да кръстим наша променлива с име, което е запазена дума
# в езика , слагаме '_' след името й.
# 5. Научих, че обект от тип 'itertools.repeat' няма метод len().
# 6. Научих, че мога да използвам zip вместо list comprehension и да смятам
# явно дължината на най-късия итеруем обект (zip_with - Второ домашно).
# 7. Научих, че е излишно да давам име на обект, ако после ще го използвам
# само на едно място в програмата. Пример:
# result = function(*arguments)
# yield result
# Мога просто да напиша yield function(*arguments). Изключение са
# случаите, в който редът става много дълъг.
# 8. Научих, че не може в генератор функция да има return с аргумент, но може
# да има само return.
# 9. Научих, че OrderedDict има метод popitem, който има аргумент по
# подразбиране last. Ако не е оказано друго, last е True и OrderedDict
# се държи като стек. Ако окажем last да бъде False, OrderedDict се държи
# като опашка.
# 10. Научих, че не е добре да използваме nonlocal променливи.
# 11. Научих, че повтряемият код е признак, че нещо може да стане и по-хитро.
# Най-често това е една допълнителна функция, която трябва да дефинирам
# и да я извиквам с различни аргументи.
# 12. Научих, че доброто именуване на обектите прави кода по-четим.
# 13. Научих, че има метод product в itertools, който дава декартово
# произведение на поредиците, които дадем като аргументи.
# 14. Научих, че ако дефинираме константи в класа, за да ги използваме
# в някоя функция, трябва да се достъпват чрез инстанция на класа.
# 15. Научих, че е безмислено съобшението на грешката(Exception) да е със същото
# име като класа на грешката. Името на грешката трябва да бъде достатъчно
# описателно.
# 16. Научих, че има метод join, който приема поредица и разделител
# и конкатенира низовете.
# 17. Научих, че има класов метод на речник fromkeys, който приема поредица
# от ключове и стойност по подразбиране.
# 18. Научих, че за предпочитане е 'if cond is None' пред 'if cond == None'.
# 19. Научих, че има многоредов низ в езика, който ограждаме на първия и
# последния ред с три кавички (единични или двойни).
# 20. Научих, че ако в многоредов низ има whitespace на края на някой ред
# стилистичната проверка с pep8 не минава, което ме навежда на следния
# въпрос : "Има ли случаи, в които пренебрегваме грешките при стилисичната
# проверка"?

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

Нели обнови решението на 25.04.2013 16:53 (преди около 11 години)

+REPOSITORY = 'https://github.com/nelly-hateva/python-homeworks/tree/master/Homeworks'
+
+# Двадесет неща, които научих.
+#
+# 1. Научих, че за обекти, които не се изменят (като списъкът от интервалите
+# за зодиакалните знаци), е добре да бъдат константи (с главни букви).
+# 2. Научих, че константите се пишат извън тялото на функциите.
+# 3. Научих, че двойките ключ - стойност в речник се итерират с items().
+# 4. Науччих, че, за да кръстим наша променлива с име, което е запазена дума
+# в езика , слагаме '_' след името й.
+# 5.
+# 6.
+# 7.
+# 8.
+# 9.
+# 10.
+# 11.
+# 12.
+# 13.
+# 14.
+# 15.
+# 16.
+# 17.
+# 18.
+# 19.
+# 20.

Нели обнови решението на 25.04.2013 17:58 (преди около 11 години)

REPOSITORY = 'https://github.com/nelly-hateva/python-homeworks/tree/master/Homeworks'
# Двадесет неща, които научих.
#
-# 1. Научих, че за обекти, които не се изменят (като списъкът от интервалите
-# за зодиакалните знаци), е добре да бъдат константи (с главни букви).
-# 2. Научих, че константите се пишат извън тялото на функциите.
-# 3. Научих, че двойките ключ - стойност в речник се итерират с items().
-# 4. Науччих, че, за да кръстим наша променлива с име, което е запазена дума
-# в езика , слагаме '_' след името й.
-# 5.
-# 6.
-# 7.
-# 8.
-# 9.
-# 10.
+# 1. Научих, че за обекти, които не се изменят (като списъкът от интервалите
+# за зодиакалните знаци), е добре да бъдат константи (с главни букви).
+# 2. Научих, че константите се пишат извън тялото на функциите.
+# 3. Научих, че двойките ключ - стойност в речник се итерират с items().
+# 4. Науччих, че, за да кръстим наша променлива с име, което е запазена дума
+# в езика , слагаме '_' след името й.
+# 5. Научих, че обект от тип 'itertools.repeat' няма метод len()..
+# 6. Научих, че мога да използвам zip вместо list comprehension и да смятам
+# явно дължината на най-късия итеруем обект.
+# 7. Научих, че е излишно да давам име на обект само, ако после ще го използвам
+# само на едно място и то веднага на следващия ред. Пример:
+# result = function(*arguments)
+# yield result
+# Мога просто да напиша yield.
+# 8. Научих, че не може в генератор функция да имаreturn с аргумент, но може
+# да има само return.
+# 9. Научих, че OrderedDict има метод popitem, който има аргумент по
+# поздразбиране last. Ако не е оказано друго, last е True и OrderedDict
+# се държи като стек. Ако окажем last да бъде false OrderedDict се държи
+# като опашка.
+# 10. Научих, че не е добре да използваме nonlocal променливи.
# 11.
# 12.
# 13.
# 14.
# 15.
# 16.
# 17.
# 18.
# 19.
# 20.

Нели обнови решението на 25.04.2013 18:01 (преди около 11 години)

REPOSITORY = 'https://github.com/nelly-hateva/python-homeworks/tree/master/Homeworks'
# Двадесет неща, които научих.
#
# 1. Научих, че за обекти, които не се изменят (като списъкът от интервалите
# за зодиакалните знаци), е добре да бъдат константи (с главни букви).
# 2. Научих, че константите се пишат извън тялото на функциите.
# 3. Научих, че двойките ключ - стойност в речник се итерират с items().
# 4. Науччих, че, за да кръстим наша променлива с име, което е запазена дума
# в езика , слагаме '_' след името й.
-# 5. Научих, че обект от тип 'itertools.repeat' няма метод len()..
+# 5. Научих, че обект от тип 'itertools.repeat' няма метод len().
# 6. Научих, че мога да използвам zip вместо list comprehension и да смятам
# явно дължината на най-късия итеруем обект.
-# 7. Научих, че е излишно да давам име на обект само, ако после ще го използвам
-# само на едно място и то веднага на следващия ред. Пример:
+# 7. Научих, че е излишно да давам име на обект, ако после ще го използвам
+# само на едно място в програмата. Пример:
# result = function(*arguments)
# yield result
-# Мога просто да напиша yield.
-# 8. Научих, че не може в генератор функция да имаreturn с аргумент, но може
+# Мога просто да напиша yield function(*arguments).
+# 8. Научих, че не може в генератор функция да има return с аргумент, но може
# да има само return.
# 9. Научих, че OrderedDict има метод popitem, който има аргумент по
-# поздразбиране last. Ако не е оказано друго, last е True и OrderedDict
-# се държи като стек. Ако окажем last да бъде false OrderedDict се държи
+# подразбиране last. Ако не е оказано друго, last е True и OrderedDict
+# се държи като стек. Ако окажем last да бъде False, OrderedDict се държи
# като опашка.
# 10. Научих, че не е добре да използваме nonlocal променливи.
# 11.
# 12.
# 13.
# 14.
# 15.
# 16.
# 17.
# 18.
# 19.
# 20.

Нели обнови решението на 25.04.2013 18:34 (преди около 11 години)

REPOSITORY = 'https://github.com/nelly-hateva/python-homeworks/tree/master/Homeworks'
# Двадесет неща, които научих.
#
# 1. Научих, че за обекти, които не се изменят (като списъкът от интервалите
# за зодиакалните знаци), е добре да бъдат константи (с главни букви).
# 2. Научих, че константите се пишат извън тялото на функциите.
# 3. Научих, че двойките ключ - стойност в речник се итерират с items().
# 4. Науччих, че, за да кръстим наша променлива с име, което е запазена дума
# в езика , слагаме '_' след името й.
# 5. Научих, че обект от тип 'itertools.repeat' няма метод len().
# 6. Научих, че мога да използвам zip вместо list comprehension и да смятам
# явно дължината на най-късия итеруем обект.
# 7. Научих, че е излишно да давам име на обект, ако после ще го използвам
# само на едно място в програмата. Пример:
# result = function(*arguments)
# yield result
-# Мога просто да напиша yield function(*arguments).
+# Мога просто да напиша yield function(*arguments). Изключение са
+# случаите, в който редът става много дълъг.
# 8. Научих, че не може в генератор функция да има return с аргумент, но може
# да има само return.
# 9. Научих, че OrderedDict има метод popitem, който има аргумент по
# подразбиране last. Ако не е оказано друго, last е True и OrderedDict
# се държи като стек. Ако окажем last да бъде False, OrderedDict се държи
# като опашка.
# 10. Научих, че не е добре да използваме nonlocal променливи.
-# 11.
-# 12.
+# 11. Научих, че повтряемият код е признак, че нещо може да стане и по-хитро.
+# Най-често това е една допълнителна функция, която трябва да дефинирам
+# и да я извиквам с различни аргументи.
+# 12. Научих, че доброто именуване на обектите прави кода по-четим.
# 13.
# 14.
# 15.
# 16.
# 17.
# 18.
# 19.
# 20.

Нели обнови решението на 27.04.2013 20:07 (преди около 11 години)

REPOSITORY = 'https://github.com/nelly-hateva/python-homeworks/tree/master/Homeworks'
# Двадесет неща, които научих.
#
-# 1. Научих, че за обекти, които не се изменят (като списъкът от интервалите
-# за зодиакалните знаци), е добре да бъдат константи (с главни букви).
+# 1. Научих, че обекти, които не се изменят (като списъкът от интервалите
+# за зодиакалните знаци в първа задача или като почти всички обекти от
+# задачата за Морския шах), е добре да бъдат константи (с главни букви).
# 2. Научих, че константите се пишат извън тялото на функциите.
# 3. Научих, че двойките ключ - стойност в речник се итерират с items().
# 4. Науччих, че, за да кръстим наша променлива с име, което е запазена дума
# в езика , слагаме '_' след името й.
# 5. Научих, че обект от тип 'itertools.repeat' няма метод len().
# 6. Научих, че мога да използвам zip вместо list comprehension и да смятам
# явно дължината на най-късия итеруем обект.
# 7. Научих, че е излишно да давам име на обект, ако после ще го използвам
# само на едно място в програмата. Пример:
# result = function(*arguments)
# yield result
# Мога просто да напиша yield function(*arguments). Изключение са
# случаите, в който редът става много дълъг.
# 8. Научих, че не може в генератор функция да има return с аргумент, но може
# да има само return.
# 9. Научих, че OrderedDict има метод popitem, който има аргумент по
# подразбиране last. Ако не е оказано друго, last е True и OrderedDict
# се държи като стек. Ако окажем last да бъде False, OrderedDict се държи
# като опашка.
# 10. Научих, че не е добре да използваме nonlocal променливи.
# 11. Научих, че повтряемият код е признак, че нещо може да стане и по-хитро.
# Най-често това е една допълнителна функция, която трябва да дефинирам
# и да я извиквам с различни аргументи.
# 12. Научих, че доброто именуване на обектите прави кода по-четим.
-# 13.
-# 14.
+# 13. Научих, че има метод product в itertools, който дава декартово
-# 15.
+# произведение на поредиците, които дадем като аргументи.
-# 16.
+# 14. Научих, че ако дефинираме константи в класа, за да ги използваме
-# 17.
+# в някоя функция, трябва пак да се достъпват чрез инстанция на класа.
-# 18.
+# 15. Научих, че е безмислено съобшението на грешката да е със същото име
-# 19.
+# като класа на грешката. Името на грешката трябва да носи достатъчно
-# 20.
+# информация.
+# 16. Научих, че има метод join, който приема поредица и разделител
+# и конкатенира низовете.
+# 17. Научих, че има класов метод на речник fromkeys, който приема поредица
+# от ключове и стойност по подразбиране.
+# 18. Научих, че за предпочитане е 'if cond is None' пред 'if cond == None'.
+# 19. Научих, че има многоредов низ в езика, който ограждаме на първия и
+# последния ред с три кавички (единични или двойни).
+# 20.

Нели обнови решението на 29.04.2013 16:10 (преди почти 11 години)

REPOSITORY = 'https://github.com/nelly-hateva/python-homeworks/tree/master/Homeworks'
-# Двадесет неща, които научих.
+# Двадесет неща, които научих:
#
# 1. Научих, че обекти, които не се изменят (като списъкът от интервалите
# за зодиакалните знаци в първа задача или като почти всички обекти от
# задачата за Морския шах), е добре да бъдат константи (с главни букви).
# 2. Научих, че константите се пишат извън тялото на функциите.
# 3. Научих, че двойките ключ - стойност в речник се итерират с items().
# 4. Науччих, че, за да кръстим наша променлива с име, което е запазена дума
# в езика , слагаме '_' след името й.
# 5. Научих, че обект от тип 'itertools.repeat' няма метод len().
# 6. Научих, че мога да използвам zip вместо list comprehension и да смятам
-# явно дължината на най-късия итеруем обект.
+# явно дължината на най-късия итеруем обект (zip_with - Второ домашно).
# 7. Научих, че е излишно да давам име на обект, ако после ще го използвам
# само на едно място в програмата. Пример:
# result = function(*arguments)
# yield result
# Мога просто да напиша yield function(*arguments). Изключение са
# случаите, в който редът става много дълъг.
# 8. Научих, че не може в генератор функция да има return с аргумент, но може
# да има само return.
# 9. Научих, че OrderedDict има метод popitem, който има аргумент по
# подразбиране last. Ако не е оказано друго, last е True и OrderedDict
# се държи като стек. Ако окажем last да бъде False, OrderedDict се държи
# като опашка.
# 10. Научих, че не е добре да използваме nonlocal променливи.
# 11. Научих, че повтряемият код е признак, че нещо може да стане и по-хитро.
# Най-често това е една допълнителна функция, която трябва да дефинирам
# и да я извиквам с различни аргументи.
# 12. Научих, че доброто именуване на обектите прави кода по-четим.
# 13. Научих, че има метод product в itertools, който дава декартово
# произведение на поредиците, които дадем като аргументи.
# 14. Научих, че ако дефинираме константи в класа, за да ги използваме
-# в някоя функция, трябва пак да се достъпват чрез инстанция на класа.
-# 15. Научих, че е безмислено съобшението на грешката да е със същото име
-# като класа на грешката. Името на грешката трябва да носи достатъчно
-# информация.
+# в някоя функция, трябва да се достъпват чрез инстанция на класа.
+# 15. Научих, че е безмислено съобшението на грешката(Exception) да е със същото
+# име като класа на грешката. Името на грешката трябва да бъде достатъчно
+# описателно.
# 16. Научих, че има метод join, който приема поредица и разделител
# и конкатенира низовете.
# 17. Научих, че има класов метод на речник fromkeys, който приема поредица
# от ключове и стойност по подразбиране.
# 18. Научих, че за предпочитане е 'if cond is None' пред 'if cond == None'.
# 19. Научих, че има многоредов низ в езика, който ограждаме на първия и
# последния ред с три кавички (единични или двойни).
-# 20.
+# 20. Научих, че ако в многоредов низ има whitespace на края на някой ред
+# стилистичната проверка с pep8 не минава, което ме навежда на следния
+# въпрос : "Има ли случаи, в които пренебрегваме грешките при стилисичната
+# проверка"?

Има ли случаи, в които пренебрегваме грешките при стилисичната проверка?

  • Ако библиотеката/фреймуъркът ни го позволяват изрично. Django например отхвърлят правилото с 80-те символа.
  • Ако позволиш точно една специфична "грешка", за целия проект с достатъчно добра аргументация.

Note: Нямате право на втория случай за вашите проекти :smile: