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

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

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

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

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

Регистрация в перечне РКН: https://tprg.ru/xZOL
Download Telegram
И ещё одна отличная новость: Docker Init теперь поддерживает Python

На днях вышел Docker Desktop 4.19. Коллеги уже сделали обзор новых фишек в Docker Desktop, среди которых повышение производительности, поддержка новых языков для Docker Init и обновление Moby.

#docker
👍8
Как улучшить дизайн ООП в Python: Принципы SOLID

Когда вы пишете на Python, используя ООП, сложно сразу правильно запланировать то, как классы и объекты будут взаимодействовать друг с другом. Тут могут здорово помочь принципы SOLID.

Статья на английском, которая поможет разобраться, что за принципы и как их лучше применять.

Серия коротких видео на русском, которая объясняет то же самое. И хотя примеры на JS, всё равно объяснено очень доступно и применимо для Python.

#лучшиепрактики
4👍1
Оптимизируем использование памяти в приложениях Python

Когда дело доходит до оптимизации производительности, чаще всего особое внимание уделяется скорости и активности использования ЦП. Гораздо реже кто-либо задумывается о потреблении памяти, а зря.

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

#лучшиепрактики
👍2👌1
Как работает функция filter?

Вроде бы всё просто, функция делает буквально то, о чём говорит её название, — фильтрует элементы в последовательности. Но давайте разбираться, как именно она это делает.

Основная фишка функции filter в том, что каждый элемент передается функции, которая включает его в последовательность, если по условию получает True, и отбрасывает в случае False.

Например:
def add_three(x):
if x % 2 == 0:
return True
else:
return False

li = [1,2,3,4,5,6,7,8]

[i for i in filter(add_three, li)]

Мы получим:
#=> [2, 4, 6, 8}

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

#собеседование
👍5
Как использовать инструменты статического анализа в Python

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

В статье подробно разобрали несколько инструментов статического анализа с открытым ПО для Python, включая Bandit и Radon. Bandit находит уязвимости в коде, а Radon генерирует метрики о сложности и удобстве сопровождения кода: https://nuancesprog.ru/p/17267/

#лучшиепрактики #безопасность
👍1
Forwarded from IT Юмор
​​Когда осваиваешь новую IDE:
🔥23😁14🥱4💩2👍1
Основатель «Типичного программиста» в авторском канале рассказывает с чего начинался Tproger (спойлер: с мемов): @nostoppers

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

Несколько примеров постов:

Есть идея по стартапу. Что дальше?

Как быть с задачами, которые не делаются?

Неочевидные правила Daily standup

Пробежки как способ развития бизнеса

Правила проведения демо разработки
1👍1
Компания Modular выпустила Mojo — Python-совместимый язык с производительностью Си

2 мая 2023 года компания Modular, одна из компаний-лидеров в сфере AI, анонсировала новый язык программирования Mojo.

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

В теории, как всегда, всё хорошо, но как на деле — давайте разбираться: https://habr.com/ru/articles/734318/

#новости
🤔10👍1🥰1
Что почитать на выходных: «Паттерны разработки на Python: TDD, DDD и событийно-ориентированная архитектура» Гарри Персиваля и Боба Грегори

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

Отдельно хорошо то, что теория подкреплена примерами на чистом Python без синтаксической избыточности Java и C#.

#книги #паттерны
👍81👎1🤯1👨‍💻1
Особенности работы с русской кодировкой при загрузке файлов через aiohttp

Если работали с aiohttp, вы наверняка натыкались на баги с битой кодировкой. Если да, то вот небольшая статья на несколько минут чтения, в которой разработчики рассказывают о своём опыте столкновения с этой ошибкой и её фиксом.

#лучшиепрактики #безопасность #библиотека
👍1
25 мини-проектов для практики Python

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

Вот подборка из 25 идей мини-проектов для практики с готовым кодом

Там есть и генератор паролей, и добавление водяного знака на фото, и уведомление о низком заряде батареи и много других интересных идей. Для основы хватит, а если допилить интерфейс и добавить фич, получится вполне себе пет-проект.

#подборка #гайд #начинающим
👍19👎21
«Карманный синоптик за час»: пишем Telegram-бота для мониторинга погоды на Python

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

В статье подробно рассмотрели работу с API, парсинг JSON и написали бота на асинхронной библиотеке aiogram. А после — загрузили на виртуальный сервер и запустили бота.

#туториал #бот #telegram
10👍4
Дайджест Python #9: PandasAI, телеграм-бот на Django и языковые модели на Python

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

Узнайте, что такое PandasAI и почему он изменит Data Science, как написать Telegram-бота на Django и как сделать языковую модель на Python:

https://tproger.ru/articles/dajdzhest-python-9/

#дайджест
👍3
Как бесплатно хостить Telegram-ботов?

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

Я пообещал найти и поделиться гайдом. Собственно, вот гайд, который я использую, когда нужно завести небольшого личного бота на Replit. Чтобы он работал без остановки и его не сбрасывало каждые 20-30 минут.

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

Далеко за примером ходить не буду, однажды Replit внезапно как-то странно перезапустил моего бота, и тот запросил код из сообщения. Я этого не делал, не подумал про Replit и сбросил все активные сеансы.

И теперь каждый раз, когда я запускаю бота на Replit, Telegram выкидывает все активные сеансы в моём аккаунте и исправить это нельзя. Видимо, Telegram счёл подозрительным IP/сервер Replit. Благо, ботом уже активно пользовались и другие люди, поэтому Replit только поторопил с переносом.

Надо ли говорить, что на нормальном платном хостинге такие вопросы всегда можно решить с поддержкой. Или, как минимум, взять сервер с другим IP/гео. Но тут, как говорится, на вкус и цвет.

#туториал #бот #telegram
👍8🔥32
Pandas AI — ИИ-библиотека для работы с Big Data

Большинство разработчиков на Python представляют, что такое pandas. Это главная библиотека в Python для работы с данными. Её активно используют аналитики данных и дата-сайентисты

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

Отличная новость, теперь можно «поговорить» со своей БД и просто задать нужный вопрос. А в ответ получить нужное вам значение. Звучит странно, но именно так и работает Pandas AI!

Рассказываем подробнее, что такое Pandas AI и как его использовать

#нейросети #инструменты
👍5👎1
Инвариантность, ковариантность и контравариантность на примере Python

До сих пор не понимаете, что такое ковариантность и контравариантность? Чувствуете, как они дышат вам в спину, но когда оборачиваетесь ничего не находите? Давайте попробую объяснить.

Всё просто:
1. Вариантность — перенос наследования исходных типов на производные от них типы.
2. Ковариантность — перенос наследования исходных типов на производные от них типы в прямом порядке.
3. Контравариантность — перенос наследования исходных типов на производные от них типы в обратном порядке.
4. Инвариантность — ситуация, когда наследование исходных типов не переносится на производные.

Всё равно не понятно? Тогда вот вам отличное видео, в котором объясняют инвариантность, ковариантность и контравариантность на примере Python.
6👍5👎1💩1
Как получить отрицательную длину len()≤0 на Python?

Встроенная функция len() возвращает длину (количество элементов) объекта. Количество элементов в коллекции не может быть отрицательным. Оно должно быть равно 0 или больше.

Но возможно ли получить негативное значение из встроенной функции len() в Python? Но тут скорее правильный вопрос, а зачем?

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

#начинающим #лучшиепрактики
🤔5👍4👎31
Forwarded from IT Юмор
Когда ушел в отпуск, отрубил всё каналы связи, но коллеги знают, что ты читаешь логи сервера:
😁84🔥9💩51👎1
10 фишек Python, которые поднимут ваш скилл на новый уровень

Работаете с Python и стремитесь улучшить свои навыки? Тогда эта статья для вас!

Мы разберем тонкости Enumeration, лямбда-функций, множественных присвоений, нарезки и других уникальных функций Python. Вы увидите, как словари, «моржовый» оператор :=, F-строки, any() и all(), zip() могут полностью изменить ваш подход к программированию.

https://tproger.ru/articles/tryuki-python-kotorye-podnimut-tvoj-skill-na-novyj-uroven

#советы
5👍3👎1
Как использовать оператор match по полной?

match case — собрат if-else, но одна из фишек оператора заключается в том, что он поддерживает деконструкцию (destructuring). То есть он может использовать шаблон, чтобы извлекать значения из сложных объектов, таких как кортежи или словари.

Например:

def make_point(point):
match point:
case(x, y):
return Point3D(x, y, 0)
case (x, y, z):
return Point3D(x, y, z)
case _:
raise TypeError("Нет координат")

>>> make_point((1, 2))
Point3D(x=1, x=2, z=0)

>>> make_point((1, 2, 3))
Point3D(x=1, x=2, z=3)

>>> make_point((1, 2, 3, 4))
TypeError: Нет координат

Теперь make_point() способна справиться с неполными данными. Если первый раз она приняла все три параметра, то в последующие уже справлялась с недостатком и переизбытком.

С такой функцией вы значительно понизите шансы на падение программы и не потратите на обработку всех ситуаций много времени.

#лучшиепрактики
👍11🤔7🔥3👨‍💻3