Философия python the zen of python: Недопустимое название — Циклопедия

сможете отличить Zen of Python от философии Лао-цзы? / Skillbox Media

#Тесты

  • 0

Попробуйте хакнуть наши вопросы и отделить философию Python от слов Лао-цзы.

Vkontakte

Twitter

Telegram

Скопировать ссылку

tesla / youtube

Тимур Тукаев

Фанат Free Software Foundation, использует Linux и недолюбливает Windows. Пишет истории про кодинг и программы на Python. Влюблён в Lisp, но пока что не умеет на нём программировать.

Лао-цзы — мудрый китаец, он написал «Дао дэ цзин». А Гвидо ван Россум — умный голландец, он создал Python. У этого языка программирования есть своя философия Zen of Python, текст которой выводит интерпретатор по команде import this. Говорят, её написал Тим Петерс.

Попробуйте определить, какая фраза взята из «Дао дэ цзин», а какая — из «Дзена Пайтона».

Начать тест

Клянусь, это Python!

А вот и нет, это сказал Лао-цзы.

Точно Лао-цзы!

Всё верно, это сказал Лао-цзы.

Дальше
Проверить
Узнать результат

Узнаю старину Тима Петерса!

В десяточку — это «Дзен Пайтона». И вот расшифровка.

Красивое лучше, чем уродливое.
Программисты часто пишут код второпях, такой код потом тяжело читать. Хороший понятный код — это красиво. 

Явное лучше, чем неявное.
Объявляйте типы переменных, присваивайте функциям и переменным понятные имена — в общем, не заставляйте людей думать.

Простое лучше сложного. Сложное лучше, чем запутанное.
Построить что-либо можно с помощью простых или сложных методов. Написать to-do list можно из простых блоков, но для ИИ понадобятся сложные элементы. Простота — это хорошо, но у неё есть ограничения.

Это же Лао. Нихао, дядюшка!

Возможно, Лао-цзы тоже говорил так, но до нас его слова не дошли 🙂 Это «Дзен Пайтона». И вот расшифровка.

Красивое лучше, чем уродливое.
Программисты часто пишут код второпях, такой код потом тяжело читать. Хороший понятный код — это красиво.  

Явное лучше, чем неявное.
Объявляйте типы переменных, присваивайте функциям и переменным понятные имена — в общем, не заставляйте людей думать.

Простое лучше сложного. Сложное лучше, чем запутанное.
Построить что-либо можно с помощью простых или сложных методов. Написать to-do list можно из простых блоков, но для ИИ понадобятся сложные элементы. Простота — это хорошо, но у неё есть ограничения.

Дальше
Проверить
Узнать результат

От этих слов пальцы так и тянутся закодить продвинутый AI!

Точно! 

Плоское лучше, чем вложенное.
Программисты любят выстраивать иерархии — модуль внутри другого модуля и так далее. В итоге получается какая-то бюрократия. Подключать субсубсубсубсубмодуль food. grain.corn.bread.white.fried.bun — это явно чересчур. Желаем всем, кто плодит сущности без необходимости, делать заказы в кафе по таким же алгоритмам 🙂

Разрежённое лучше, чем плотное.
Запихивать кучу полезной работы в одну строку — идея не очень. Сделайте несколько понятных строк, не заставляйте коллег проклинать вас.

Джеки Чан говорил что-то подобное, это Лао-цзы!

SyntaxError: invalid syntax. Это «Дзен Пайтона».

Плоское лучше, чем вложенное.
Программисты любят выстраивать иерархии — модуль внутри другого модуля и так далее. В итоге получается какая-то бюрократия. Подключать субсубсубсубсубмодуль food.grain.corn.bread.white.fried.bun — это явно чересчур. Желаем всем, кто плодит сущности без необходимости, делать заказы в кафе по таким же алгоритмам 🙂

Разрежённое лучше, чем плотное.
Запихивать кучу полезной работы в одну строку — идея не очень. Сделайте несколько понятных строк, не заставляйте коллег проклинать вас.

Дальше
Проверить
Узнать результат

Хм… В моём коде на Python предыдущее и последующее точно следовали друг за другом…

А вот и нет — это древнекитайская философия.

О прекрасная и мудрая «Дао дэ цзин!

Великий китайский файервол аплодирует вам!

Дальше
Проверить
Узнать результат

Типичный Python! Хотя я и замолчал бы пару своих ошибок.

Все верно, это «Дзен Пайтона».

Ошибки никогда не должны замалчиваться. Если они не замалчиваются явно.
Лучше, чтобы программа явно выдавала сообщение об ошибках: даже если они кажутся нестрашными прямо сейчас, со временем могут привести к серьёзным проблемам. И тогда будет трудно понять, что стало причиной сбоя. Но скрыть ошибку сознательно — это нормально, если вы убедились, что всё ок.

Да будет проклят тот из мандаринов, кто смеет замалчивать ошибки!

Поднебесная скорбит — мудреца не интересуют мирские ошибки.

Ошибки никогда не должны замалчиваться. Если они не замалчиваются явно.
Лучше, чтобы программа явно выдавала сообщение об ошибках: даже если они кажутся нестрашными прямо сейчас, со временем могут привести к серьёзным проблемам. И тогда будет трудно понять, что стало причиной сбоя. Но скрыть ошибку сознательно — это нормально, если вы убедились, что всё ок.

Дальше
Проверить
Узнать результат

print («Это Python, ребята»)

Д6 — убит! Это и правда Python.

Перед лицом неопределённости отбрось искушение угадать.
Если код не работает, на то есть причина. И вместо слепого перебора всех методов, которые когда-то сработали, лучше использовать критическое мышление и внимательно проанализировать ситуацию. Ах да, включить-выключить пробовали?

Прекрасный слог, достойный рассказывать о непостижимом Дао!

Сакура плачет,
Бросая цветы на дорогу.
Даже японцы в курсе.

Это Python. Так уж вышло. 

Перед лицом неопределённости отбрось искушение угадать.
Если код не работает, на то есть причина. И вместо слепого перебора всех методов, которые когда-то сработали, лучше использовать критическое мышление и внимательно проанализировать ситуацию. Ах да, включить-выключить пробовали?

Дальше
Проверить
Узнать результат

100% Python — он же используется для интернета вещей, а значит, программисты борются с вещами!

Оно, конечно, верно и для Python-программиста, но всё-таки это Лао-цзы.

Древние китайцы — мудрые ребята.

Оно, конечно, верно и для Python-программиста, но всё-таки это Лао-цзы.

Дальше
Проверить
Узнать результат

Так и веет программистской логикой.

Лао-цзы загадочно улыбается, восседая на драконе…

Пустота, Восток, буддисты и всё такое.

Лао Цзы одобрительно улыбается, восседая на драконе…

Дальше
Проверить
Узнать результат

Так это ж Python!

Ты познал тайны Дао! А надо было «Дзен Пайтона» 🙂

Весьма глубокомысленно — это Лао-цзы.

Ты познал тайны Дао!

Дальше
Проверить
Узнать результат

Очень практично, это Python.

Тим Петерс шлёт привет!

Сейчас лучше, чем никогда. Хотя никогда зачастую лучше, чем прямо сейчас.
Начни делать прямо сейчас, иначе ничего так и не сделаешь. Но иногда лучше вообще не начинать, если планируешь писать код на скорую руку: глючная и неудобная программа — так себе решение.

Не, это точно Лао-цзы!

Где-то в мире заплакал один Тим Петерс. Это Python.

Сейчас лучше, чем никогда. Хотя никогда зачастую лучше, чем прямо сейчас.
Начни делать прямо сейчас, иначе ничего так и не сделаешь. Но иногда лучше вообще не начинать, если планируешь писать код на скорую руку: глючная и неудобная программа — так себе решение.

Дальше
Проверить
Узнать результат

Говорят, Python достиг ясности в синтаксисе. Я за него.

Python достиг ясности в синтаксисе, но это Лао-цзы 🙂

А я за Лао-цзы и «Дао дэ цзин».

Всё правильно, это Лао-цзы.

Дальше
Проверить
Узнать результат

Опять практичность — это точно Python!

Дзен в твоём сердце. Слушай его музыку!

Особые случаи не настолько особые, чтобы нарушать правила. При этом практичность важнее безупречности.
Best practices, правила и тому подобное — это хорошо и полезно, но не надо следовать им слепо. Иначе получится бюрократический код. Это про опыт. Пишите много кода, практикуйтесь и найдите золотую середину между правилами и практичностью. Так вы постигнете Дао. То есть дзен… Ой, да ну их!

Древние китайцы любят туманные слова вроде «безупречность».

А вот и нет — это «Дзен Пайтона»

Особые случаи не настолько особые, чтобы нарушать правила. При этом практичность важнее безупречности.
Best practices, правила и тому подобное — это хорошо и полезно, но не надо следовать им слепо. Иначе получится бюрократический код. Это про опыт. Пишите много кода, практикуйтесь и найдите золотую середину между правилами и практичностью. Так вы постигнете Дао. То есть дзен… Ой, да ну их!

Дальше
Проверить
Узнать результат

Словом «это» начинался легендарный «Летающий цирк Монти Пайтона». Наверняка это Python!

Есть один и только один способ правильно ответить на этот вопрос — это он =)

Должен существовать один и желательно только один очевидный способ сделать это.
Это дружеский подкол в сторону другого языка программирования — Perl. Его девиз: «Есть больше одного способа сделать это». Но много способов сделать одно и то же затрудняет чтение и написание кода. Поди-ка разберись! Кстати, у этого пункта есть шутливое продолжение: «Хотя этот способ поначалу может быть не очевиден, если вы не голландец». Это намёк на создателя языка Гвидо ван Россума. Он как раз голландец.

Такого тумана мог напустить только Лао-цзы.

Этот ответ похож на совершенный, но нет =)

Должен существовать один и желательно только один очевидный способ сделать это.
Это дружеский подкол в сторону другого языка программирования — Perl. Его девиз: «Есть больше одного способа сделать это». Но много способов сделать одно и то же затрудняет чтение и написание кода. Поди-ка разберись! Кстати, у этого пункта есть шутливое продолжение: «Хотя этот способ поначалу может быть не очевиден, если вы не голландец». Это намёк на создателя языка Гвидо ван Россума. Он как раз голландец.

Дальше
Проверить
Узнать результат

Я Python определяю с закрытыми глазами!

А с открытыми глазами получается чуть хуже 🙂

Ну ведь совершеннейший Лао-цзы!

Бинго! Конечно, это Лао-цзы.

Дальше
Проверить
Узнать результат

Ну тут уже всё понятно, это Python

Это правильный ответ!

Пространства имён — отличная штука! Будем делать их больше!
Пространства имён — как папки на компьютере. Если вы попробуете положить два файла с одинаковым названием python.exe в одну папку — ничего не выйдет, а если в разные — всё получится. Пространства имён помогают разделять переменные и функции с одинаковым названием. Но помните про принцип «Плоское лучше, чем вложенное», используйте пространства имён только там, где они действительно необходимы.

Всё равно хочу, чтобы это был Лао-цзы!

И это неправильный ответ!

Пространства имён — отличная штука! Будем делать их больше!
Пространства имён — как папки на компьютере. Если вы попробуете положить два файла с названием python.exe в одну папку — ничего не выйдет, а если в разные — всё получится. Пространства имён помогают разделять переменные и функции с одинаковыми названиями. Но помните про принцип «Плоское лучше, чем вложенное», используйте пространства имён только там, где они действительно необходимы.

Дальше
Проверить
Узнать результат

Junior

Похоже, древняя китайская философия тебе по вкусу. Значит, ты с удовольствием изучишь новую прекрасную философию — «Дзен Пайтона». Давай к нам на курс «Python-разработчик», мы всё покажем и расскажем.

Пройти ещё раз

Middle

Очень хороший результат! Только что в каком-то пространстве имён один Тим Петерс прослезился от умиления. А тебе, похоже, нужен хардкор — так получи его на курсе «Fullstack-разработчик на Python».

Пройти ещё раз

Senior

Привет, Гвидо! Решил поразвлечься на пенсии и хакнуть несколько тестов о Python? Ну тогда гоу к нам в Skillbox, на курс «Python-фреймворк Django». Мы сумеем тебя удивить!

Пройти ещё раз

* Решением суда запрещена «деятельность компании Meta Platforms Inc. по реализации продуктов — социальных сетей Facebook* и Instagram* на территории Российской Федерации по основаниям осуществления экстремистской деятельности».

Vkontakte

Twitter

Telegram

Скопировать ссылку


Учись бесплатно:
вебинары по&nbspпрограммированию, маркетингу и&nbspдизайну.

Участвовать

Понравилась статья?

Да

Философия Python Разработчики языка Python придерживаются определённой философии программирования, называемой «The Zen of Python»

Байланысты:
Знакомство и установка Python
Тарих 1, LC Waikiki Store KRAs — For Store Managerial Positions RSS, 1. 26.10.2022 ж. Пед-псих оқу практ — мәлімет


©melimde.com 2022
әкімшілігінің қараңыз


Философия Python

Разработчики языка Python придерживаются определённой философии программирования, называемой «The Zen of Python». Её текст выдаётся интерпретатором Python по команде import this (работает один раз за сессию). Автором этой философии считается Тим Петерс (Tim Peters).


В оригинале



  1. Beautiful is better than ugly;



  2. Explicit is better than implicit;



  3. Simple is better than complex;



  4. Complex is better than complicated;



  5. Flat is better than nested;



  6. Sparse is better than dense;



  7. Readability counts;



  8. Special cases aren’t special enough to break the rules;



  9. Although practicality beats purity;



  10. Errors should never pass silently;



  11. Unless explicitly silenced;



  12. In the face of ambiguity, refuse the temptation to guess;



  13. There should be one — and preferably only one — obvious way to do it;



  14. Although that way may not be obvious at first unless you’re Dutch;



  15. Now is better than never;



  16. Although never is often better than *right* now;



  17. If the implementation is hard to explain, it’s a bad idea;



  18. If the implementation is easy to explain, it may be a good idea;



  19. Namespaces are one honking great idea — let’s do more of those!

Перевод на русский язык



  1. Красивое лучше, чем уродливое;



  2. Явное лучше, чем неявное;



  3. Простое лучше, чем сложное;



  4. Сложное лучше, чем запутанное;



  5. Плоское лучше, чем вложенное;



  6. Разреженное лучше, чем плотное;



  7. Читаемость имеет значение;



  8. Особые случаи не настолько особые, чтобы нарушать правила;



  9. При этом практичность важнее безупречности;



  10. Ошибки никогда не должны замалчиваться;



  11. Если не замалчиваются явно;



  12. Встретив двусмысленность, отбрось искушение угадать;



  13. Должен существовать один — и, желательно, только один — очевидный способ сделать это;



  14. Хотя он поначалу может быть и не очевиден, если вы не голландец;



  15. Сейчас лучше, чем никогда;



  16. Хотя никогда зачастую лучше, чем прямо сейчас;



  17. Если реализацию сложно объяснить — идея плоха;



  18. Если реализацию легко объяснить — идея, возможно, хороша;



  19. Пространства имён — отличная вещь! Давайте будем делать их больше!

Установка Python на Windows 🐍



Язык Python относится к свободному программному обеспечению, поэтому его можно скачать с официального сайта, свободно распространять и устанавливать на все современные операционные системы.

Шаг 1. Скачайте установщик Python 3



  1. Откройте окно браузера и перейдите на сайт python.org;



  2. Кликните по ссылке Downloads;



  3. Кликните по желтой кнопке Download Python 3.x.

Шаг 2. Запустите установщик



  1. Установите галочку напротив Add Python 3.x to PATH;



  2. Кликните Install Now;



  3. Через несколько минут на вашем компьютере будет установлен Python 🐍

 


На момент создания курса последней версией является Python 3.8.1.

Среда разработки Wing IDE



Команды для интерпретатора можно писать в обычном текстовом редакторе (например, в «Блокноте»). Но чаще для этого пользуются специальной программой, которая называется средой разработки (англ. IDE, Integrated Development Environment).

Среда разработки — тоже текстовый редактор, но с дополнительными возможностями. Например, она умеет сама находить на компьютере программу-интерпретатор и запускать программу одной кнопкой. Среда разработки, кроме того, форматирует написанный вами код, чтобы его удобно было читать, а иногда даже подсказывает, где вы допустили ошибку.


Мы будем использовать среду разработки Wing IDE. У нее есть официальная бесплатная версия для образовательных целей, которая называется Wing IDE 101. Она доступна для всех операционных систем: Windows, Linux, OS X.

Шаг 1. Скачайте установщик Wing 101



  1. Откройте окно браузера и перейдите по ссылке;



  2. Кликните по зелёной кнопке Windows Installer;



  3. Если загрузка не началась, кликните по ссылке для скачивания.

Шаг 2. Запустите установщик



  1. Следуйте указаниям установщика, нажимая кнопку Next;



  2. Через несколько минут на вашем компьютере будет установлена IDE wing 101.

Шаг 3. Запустите Wing IDE



  1. Убедитесь, что Wing IDE использует последнюю версию Python;



  2. Если Wing IDE использует другую версию Python, то установите её самостоятельно: выберите меню Edit → Configure Python;



  3. Выберите в пункте Python Executable точку Custom и в выпадающем списке выберите последнюю версию Python;



  4. Нажмите на кнопку OK. Теперь Wing IDE использует последнюю установленную версию Python.

На момент создания курса последней версией является Python 3.8.1.

жүктеу/скачать 1.76 Mb.


Достарыңызбен бөлісу:

Дзен Python: руководство по принципам проектирования Python | by Vishal Sharma

Пишем чистый и красивый код!

Пишите чистый код с помощью Python

Питонист однажды написал 20 афоризмов о том, как можно написать красивый и чистый код с помощью Python. Эти афоризмы, ставшие известными как «Дзен Python», взорвали разработчиков Python. Тим Питерс написал эти BDFL (Benevolent Dictator For Life, прозвище создателя Python Гвидо ван Россум) 20 руководящих принципов для разработки Python, но последний афоризм был оставлен для заполнения ван Россумом.0005

На сегодняшний день существует 19 афоризмов, поскольку Россум сказала, что последний афоризм — это «какая-то странная шутка Тима Питерса». Но что означают эти афоризмы? Давайте взломаем это!

Дзен Питона

Красивое лучше безобразного.
Явное лучше, чем неявное.
Простое лучше сложного.
Сложность лучше сложности.
Flat лучше, чем вложенный.
Разреженный лучше, чем плотный.
Учитывается читабельность.
Особые случаи не настолько особенные, чтобы нарушать правила.
Хотя практичность важнее чистоты.
Ошибки никогда не должны проходить молча.
Если явно не отключено.
Перед лицом двусмысленности откажитесь от искушения угадать.
Должен быть один — и желательно только один — очевидный способ сделать это.
Хотя поначалу это может быть неочевидно, если только вы не голландец.
Лучше сейчас, чем никогда.
Хотя часто никогда лучше, чем *прямо* сейчас.
Если реализацию трудно объяснить, это плохая идея.
Если реализацию легко объяснить, это может быть хорошей идеей.
Пространства имен — это отличная идея — давайте сделаем больше таких!

Вы можете открыть «пасхальное яйцо» в своей среде Python IDE, набрав:

import this

Красивое лучше, чем уродливое работа, чтобы сделать. Python известен своей удобочитаемостью и простотой. Так зачем вмешиваться? Написание чистого и читаемого кода — это искусство, которое ценят другие программисты и позволяют им понять каждый бит.

 def collatz(num): 
if num%2 == 0:
return num//2
else:
return 3 * num + 1

number = input("Введите число:")
while number != 1:
number = collatz(int(number))
print(number)

В приведенном выше коде нет необходимости добавлять «else». В данный момент это кажется ненужным. В противном случае, чтобы сделать его лучше и чище, вы можете сделать что-то вроде:

 def collatz(num): 
if num%2 == 0:
return num//2

return 3 * num + 1

Явное лучше неявного

Афоризм говорит сам за себя. Это означает, что код лучше сделать более подробным и явным. Это сделает код читабельным. Сокрытие функциональности кода может иметь последствия, поскольку другие программы могут не понять код.

Простое лучше сложного

Зачем создавать сложный код, если можно создать более простой.

 def recursion_reverse(s): 
if(len(s)==1):
return s
else:
return recursion_reverse(s[1:]) + s[0]

original_string = "ABC"
print("Reversed String : ", recursion_reverse(original_string))

Вы можете сделать это всего за две строки кода тоже.

 my_string = «ABCD» 
reversed_string = my_string[::-1]

Сложное лучше сложного

Приведенный выше афоризм утверждает, что простое лучше сложного. И теперь этот говорит: «Сложное лучше, чем сложное». Это становится запутанным! Для решения сложной проблемы может потребоваться сложная техника, но она не должна быть сложной.

Сложности в коде сбивают с толку других программистов. Даже если программа сложная, постарайтесь сделать ее более простой, чтобы ее было легко читать и понимать. Сложный код требует усилий и времени! И программисты не могут позволить себе терять время.

Flat лучше, чем вложенный

Программисты любят создавать подмодули для каждой функциональности. Скажем, я создаю модуль с именем «спам» и добавляю подмодуль «foo», а в нем я добавляю «баз».

Теперь доступ к другому подпакету из baz будет выглядеть так:

 from spam.foo.baz импортировать яйца 

Вложенность и иерархия добавляют не организации, а бюрократии!

Разреженный лучше, чем плотный

Иногда мы стремимся сделать все в одной строке кода. Вы можете получить правильный вывод. Но как насчет читабельности? Может ли кто-нибудь понять это, не заглядывая в него долго?

 print('\n'.join("%i bytes = %i битов, которые имеют %i возможных значений." % (j, j * 8, 256 ** j - 1) для j в 
(1 << я для я в диапазоне (8))))

То же самое можно было бы разбить на части и написать, чтобы получить тот же результат. Разбросанный код доставляет удовольствие, а более плотный приводит в бешенство коллег.

Читабельность подсчитывается

Вы заходите в StackOverflow каждый раз, когда застреваете в своем коде? Итак, на какой код вы смотрите? Читаемый один или сложный кусок!

Говорят, что код больше читается, чем пишется. Так что, пожалуйста, ради читателей начните писать код, чтобы он был читабелен, как его любят наши коллеги-программисты.

Особые случаи не настолько особенные, чтобы нарушать правила

Программист должен придерживаться хороших «практик программирования». Допустим, вы импортируете библиотеку, но она не соответствует передовым методам программирования. Это должно помочь вам в выполнении вашей задачи, но имейте в виду, что библиотеки и языки всегда должны следовать лучшим «практикам программирования» и известны своей согласованностью.

Хотя практичность превосходит чистоту

Вопреки приведенному выше афоризму «Особые случаи не настолько особенны, чтобы нарушать правила», этот афоризм предполагает, что может быть исключение из данного набора правил. Ключевое слово здесь «могут».

Ошибки никогда не должны проходить молча

Когда функция возвращает None, это время, когда вы находитесь в ловушке скрытых ошибок. Лучше получать ошибки, а не тихие ошибки. Если вы избегаете таких ошибок, это может привести к ошибкам, а в дальнейшем и к сбоям.

Вот почему использование оператора «try-except» становится важным в коде. Везде, где вы думаете, что может произойти что-то подозрительное, вы должны добавить эту комбинацию и узнать об этих скрытых ошибках.

Если явно не заглушить

Иногда вы хотите проигнорировать ошибку в коде, лучше всего заглушить ошибку явным образом.

Перед лицом двусмысленности откажитесь от искушения угадать

Компьютеры делают то, что мы от них хотим. Тем не менее, эти машины сделали нас суеверными. Всегда есть причина, по которой компьютерный код не работает должным образом. Только и только ваша логика может это исправить. Итак, избавьтесь от искушения гадать и слепо пробовать решения, пока код не заработает.

Должен быть один — и желательно только один — очевидный способ сделать это

В программировании на Perl есть поговорка: «Есть больше одного способа сделать это!» Использование трех-четырех кодов для выполнения одного и того же действия похоже на палку о двух концах. Мало того, что на его написание уходит время, так еще и каждый товарищ должен уметь читать ваши 3–4 метода без каких-либо проблем. Гибкость в этой практике не стоит праздновать.

Хотя поначалу это может быть неочевидно, если вы не голландец

Ссылаясь на Гвидо ван Россума, создателя Python, этот афоризм говорит о том, что правило языка будет нелегко выучить или вспомнить, если только вы не станете создателем кода. Шутка, относящаяся к BDFL!

Лучше сейчас, чем никогда

Этот небольшой афоризм говорит о том, что код, застрявший в бесконечном цикле или в бесконечном цикле, хуже, чем код, который этого не делает.

Хотя никогда лучше, чем *прямо* сейчас

Лучше дождаться завершения программы, чем завершить ее раньше и получить неправильные результаты. Этот афоризм и приведенный выше «Лучше сейчас, чем никогда» похожи друг на друга и в то же время противоречат друг другу.

Если реализацию трудно объяснить, это плохая идея

Если вы объясняете кому-то свой код, а объяснить его знакомым или коллегам становится сложно, значит, с вашим кодом что-то не так . Это точно не просто и сложно!

Если реализацию легко объяснить, это может быть хорошей идеей

Прямо противоположно приведенному выше афоризму, этот просто говорит, что простой, читаемый код легко объяснить. И если вы в состоянии сделать это, вы на правильном пути.

Пространства имен — это отличная идея — давайте сделаем больше таких!

В Python пространство имен — это, по сути, система, имеющая уникальное имя для каждого объекта. Это отличный способ получить доступ к каждому базовому объекту.

 a = 2 
print('id(a) =', id(a))

a = a+1
print('id(a) =', id(a))

print('id( 3) =', id(3))

Выведено:

 id(a) = 9302208 
id(a) = 9302240
id(3) = 9302240

То, как Python организует переменные под капотом, просто невероятный. Вот почему пространства имен — это круто!

Заключение

Python великолепен! Вот почему миллионы разработчиков используют его, пишут в нем код, анализируют с его помощью данные и строят с его помощью модели. Руководящие принципы, сделанные для него, только мотивируют программистов писать простой, читаемый и чистый код. В следующий раз, когда вы сядете за программирование, попробуйте следовать этим рекомендациям.

Ссылки

  1. PEP 20 — Zen of Python

Приятного программирования!

Python Zen — философия кода Python и лучшие практики

Написание чистого и элегантного Python — это искусство, необходимое для создания качественного кода. К счастью, основатели Python оставили ряд руководящих принципов, которые помогут разработчикам в этом начинании: Zen of Python .

Что такое дзен Python?

Ваш первый шаг на пути к пифоническому просветлению — найти Дзен . Используя свой любимый интерпретатор Python, просто введите:

В поисках Python Zen

И вот, Появляется Zen !

Сам Python Zen!

Написанный в 1999 году одним из основных разработчиков Python, Тимом Питерсом, Zen of Python представляет собой список из 19 афоризмов, излагающих философию дизайна Python . 5 лет спустя он стал таким стандартом среди разработчиков, что PEP 20 (Python Enhancement Proposal) включил его в официальную литературу по Python, создав пасхальное яйцо, показанное выше.

Давайте посмотрим на философию дзен и на то, как ее можно применить к нашим практикам развития!

Ясность

Написать чистый код означает написать код, который легко воспринять, понять или интерпретировать .

Если вы разработчик, скорее всего, вы будете тратить более 8 часов в день на просмотр кода. Это подводит меня к первой строке Python Zen:

Красивое лучше, чем безобразное. (1)

И, конечно же, седьмое:

Читабельность имеет значение. (7)

На практике несколько инструментов и стандартов могут помочь следовать этим принципам, начиная с соглашения об именовании (PEP 8) до средства форматирования кода (черный).

При оценке своего кода важно поставить себя на место несведущего (но свободно говорящего на Python) человека , поскольку «код читается намного чаще, чем пишется » (Гвидо Ван Россум, доброжелательный диктатор Python для жизнь).

Явность

Написание явного кода означает написание кода, который не оставляет места для сомнений. Две части Дзэн детализируют эту концепцию:

Явное лучше, чем неявное. (2)
Должен быть один - и желательно только один - очевидный способ сделать это. (12)

Например, первый практический способ сделать ваш код более явным — использовать подсказки типов (представленные в PEP 484) и автоматические средства проверки типов (mypy).

Создание явных типов переменных Python с помощью подсказок типов

Эта концепция еще больше применима к обработке ошибок . Если вы когда-либо отлаживали код, вы знаете, что без сомнения на причину/местоположение вашей ошибки сэкономит вам много времени и усилий. Так говорит Дзен!

Ошибки никогда не должны проходить молча.
Если явно не отключено. (10-11)

Модульность

Модульность — это идея разделения вашего кода на компонентов , которые можно разделить и объединить, чтобы обеспечить большую гибкость и независимость.

Простое лучше сложного. Комплекс лучше сложного. (3-4)

Разница между сложным и сложным здесь существенна:

  • сложный код трудно понять, поскольку он включает в себя большое количество различных, но связанных объектов.
  • A c сложный код трудно понять сам по себе.

Главный вывод: если вы пишете что-то сложное, разбейте его на более простые части. Даже если ваш код окажется сложным, каждую маленькую часть будет проще синхронизировать, отлаживать и тестировать!

Прагматизм

В реальном мире разработчики работают в условиях ограничений (экономические реалии, время, бюджет...), создавая качественный продукт , который остается жизнеспособным в долгосрочной перспективе.

Разработчики часто должны быть прагматичными в поиске баланса между лучшим способом и самым быстрым способом достижения цели.

This entry was posted in Популярное