Zen of Python
20.2K subscribers
1.2K photos
161 videos
32 files
3.14K links
Полный Дзен Пайтона в одном канале

Разместить рекламу: @tproger_sales_bot

Правила общения: https://tprg.ru/rules

Другие каналы: @tproger_channels

Сайт: https://tprg.ru/site

Регистрация в перечне РКН: https://tprg.ru/xZOL
Download Telegram
В дополнение про производительность

В прошлом посте поделились статьёй, в которой рассказали, как сегодня можно ускорить код на Python. И вот ещё одно интересное видео на эту тему.

Это более глубокий разбор вопроса от Карла Мейера, инженера-программиста из одной запрещённой соцсети. Несколько лет назад Карл и его команда начали работать над проектом под названием Cinder, стремясь повысить эффективность через оптимизацию работы на уровне Python runtime.

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

https://youtu.be/RQAFpUM3EoE
2👍1
Конструкция match-case в Python

Начиная с версии 3.10, в Python наконец-то появилась конструкция match-case. С помощью неё можно избавиться от громоздких цепочек if-elif-else.

Например:
http_status = 400
if http_status == 400:
print("Bad Request")
elif http_status == 403:
print("Forbidden")
elif http_status == 404:
print("Not Found")
else:
print("Other")

Вместо этого можно использовать компактное выражение match-case:
http_status = 400
match http_status:
case 400:
print("Bad Request")
case 403:
print("Forbidden")
case 404:
print("Not Found")
case _:
print("Other")

Если ещё не разобрались, как работает конструкция, вот отличная статья, в которой рассказали подробнее. А также разобрали распространенные проблемы с if-else и варианты их решения при помощи match-case:

https://pythonist.ru/konstrukcziya-match-case-v-python-polnoe-rukovodstvo/
👍374
Бесконечно можно смотреть на три вещи: горящий огонь, бегущую воду и на шпаргалки по регуляркам

Держите объёмную шпаргалку для Python.

#шпаргалка
👍37🔥6💩2
Когда возвращаешься к коду спустя месяц и пытаешься вспомнить что каждая функция делает:
😁747👍1
8 паттернов проектирования для ML-разработчиков

Паттерны проектирования помогают быстрее и эффективнее создавать код, а не «изобретать велосипеды». Если разработчик может грамотно формализовать проблему с помощью ООП и выбрать подходящий паттерн для её решения, во-первых, это очень круто и профессионально, а во-вторых, это может серьезно ускорить сроки разработки.

В статье — 8 паттернов проектирования с примерами кода на Python: https://proglib.io/p/8-patternov-proektirovaniya-kotorye-dolzhen-znat-kazhdyy-ml-razrabotchik-2022-10-27

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

#ml #паттерны
👍6👏1
Как генерировать музыку из изображений с помощью Python

Гайд, из которого вы узнаете, как можно делать музыку из изображений и экспортировать её в wav-файлы для последующей обработки.

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

Для забавного пет-проекта на пару вечеров практики вполне подойдёт: https://habr.com/ru/company/ruvds/blog/708890/
🔥11👍4🍓1
Дорожная карта: изучение Python с нуля

Вообще, изучение основ Python почти ничем не отличается от любого другого языка. Но дальше в ход идёт разделение на сферы, синхронное/асинхронное программирование, тестирование и инструменты, часто индивидуальные для каждого языка.

Вот такие вот роадмапы помогают окончательно не запутаться и структурировать обучение. На картинке общий план развития. А в статье — подробности с пояснениями: https://tproger.ru/articles/python-roadmap/

#шпаргалки
17👍7💩7
Уберите детей от экрана...
😁57🤯11💩7🗿6👍4
Вопросы с собеседований: Как сортировать словарь по значению?

Загвоздка в том, что словари в Python не имеют специальных методов, позволяющих сортировать элементы по значениям.

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

Вот небольшая заметка, в которой вы найдёте несколько оптимальных способов отсортировать словарь по значению в Python:

https://pythonist.ru/sortirovka-slovarya-po-znacheniyu-2/
👍12🥴3
Лучшие open-source инструменты для Python проектов

Open-source проекты, сторонние инструменты и библиотеки — это то, за что мы действительно любим Python.

И вот полезная статья, в которой собраны самые полезные, валидированные сообществом и проверенные временем инструменты, конфигурации которых можно встретить в популярных проектах с открытым исходным кодом: https://habr.com/ru/post/708916/

#библиотека
👍2💩1
Внезапно очень интересный тред на Reddit, в котором Python-разработчики рассказывают, над чем они работали на прошлой неделе

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

https://www.reddit.com/r/Python/comments/10ntjak/sunday_daily_thread_whats_everyone_working_on/
🔥9👍6
Самые полезные навыки для Python-разработчика в 2023 году

В статье собрано 7 советов, которые помогут вам понять, в каких случаях лучше использовать библиотеки NumPy и NumExpr, как улучшить производительность функции pandas apply() или разобраться в плюсах и минусах Numba. И в целом улучшить свои навыки программирования на Python:

https://towardsdatascience.com/speed-up-your-python-skills-in-2023-e680f4c56f37

#советы
👍6🔥3💩1
Обновлённая дорожная карта по Python на 2023 год: теперь интерактивная

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

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

Так что если ещё не сохранили себе, рекомендуем: https://roadmap.sh/python

#шпаргалки
🔥22👍8💩2
Дайджест Python: чем плох Django и как создать бота на GPT-3

Собрали дайджест из лучших материалов, гайдов и новостей по Python.

Узнайте, с чем сталкиваются джуниоры на собеседованиях, как создать чат-бота на основе GPT-3 и собственный SEO-анализатор: https://tproger.ru/articles/dajdzhest-python-chem-ploh-django-i-kak-sozdat-bota-na-gpt-3/

#дайджест
👍25🥰2😁2
Задача коммивояжёра — точное решение через метод целочисленного линейного программирования

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

Задачу коммивояжёра можно решить несколькими способами. Например, простым перебором. Но чем больше будет городов, тем медленнее будет расчёт. Уже на 10 городах мы получим миллионы выполнений цикла. А на 13 городах таких — уже несколько миллиардов, и компьютер может их считать неделю и даже больше.

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

Вот интересная статья, которая показывает, что точное решение этой задачи можно получить гораздо более оптимальным способом. Всё с понятными объяснениями и кодом на Python: https://habr.com/ru/post/711708/

#задачи
🤯11👍5🔥4
Пришла пора признать это
😁65👍17🔥7🤬1
Самые популярные вопросы на собеседовании: «В чем разница между списком и кортежем?»

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

И начнём с одного из самых простых, но самых частых вопросов с собеседований по Python/Data science. Его важно знать даже просто для себя.

Вот несколько отличительных черт кортежей и списков:
— Список можно изменить после создания. Кортеж — нельзя.
— Список упорядочен. Он представляет собой упорядоченные последовательности объектов часто одного и того же типа. Например, все имена пользователей упорядочены по дате создания: ["Seth", "Ema", "Eli"].
— У кортежа есть структура. В каждом индексе могут сосуществовать различные типы данных. Например, такая запись базы данных в памяти: (2, "Ema", "2020–04–16") # id, name, created_at.

#собеседование
👍62👎9
Как писать чистый и читаемый код на Python: 3 самых важных принципа

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

Подробнее: https://proglib.io/p/3-principa-napisaniya-chistogo-koda-na-python-2022-12-26

#советы
👍23💩2
5 лучших ресурсов для изучения Python

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

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

Так что сохраняйте себе и учитесь на здоровье:

1. Code Academy
Code Academy — это бесплатный учебный ресурс для изучения программирования. Там есть уроки по многим языкам, не только по Python. Удобно, что можно писать прямо в браузере и сразу смотреть результаты. Лучше всего подходит для начинающих и программистов среднего уровня.

2. TutorialsPoint
TutorialsPoint похож на Code Academy. Но база знаний TutorialsPoint больше — там есть и довольно сложные темы, такие как доступ к базам данных, CGI, игры, многопоточность, сети, дизайн и т. п.

3. Codementor.io
Codementor — платформа больше для разработчиков от среднего уровня до экспертов. А каждый пост на этом сайте — отдельное руководство по какой-либо теме, например, об интеграции Node.js с Python, использовании декораторов и т. п.

4. PythonChallenge
Сайт точно вам понравится, если вы не ищете легких путей и предпочитаете учиться, преодолевая трудности. Это не самый современный и красивый сайт. Но там вы найдёте отличные задачи и уроки, которые помогут вам в изучении Python.

5. Python Class от Google
Это — учебник по Python от Google. Материал в нём предназначен для опытных программистов. Здесь в основном теория, но написанная простым и доступным английским. Как вспомогательный материал для изучения Python точно подойдёт.

#подборка
👍274🔥2👏1