Zen of Python
20.1K subscribers
1.29K photos
179 videos
36 files
3.3K links
Полный Дзен Пайтона в одном канале

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

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

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

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

Регистрация в перечне РКН: https://tprg.ru/xZOL
Download Telegram
​​Сломал ногу — выучил Python: как ИИ помог экс-консультанту стать программистом за 100 дней

38-летний Эрик Леннрот после травмы решил изменить карьеру и выбрал Python, пройдя бесплатные курсы CS50 от Гарварда. С помощью ChatGPT он писал псевдокод, получал обратную связь и вручную набирал код. Его первый проект стал основой для более сложного веб-приложения из 25К строк кода. И о чудо! через три месяца он получил оффер в консалтинговой компании в Лондоне, где заменил Excel на автоматизированные пайплайны. Обучение обошлось ему в $120 (подписки на Claude Pro и Cursor).

#факт
@zen_of_python
42
Новый инструмент для отладки асинхронных процессов

С выходом Python 3.14 beta 2 появился новый CLI-инструмент для инспекции асинхронных задач:


python -m asyncio ps 12345 # Табличный список задач для процесса с PID 12345
python -m asyncio pstree 12345 # Древовидное отображение взаимозависимых корутин


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

Сферы применения
— Telegram-боты;
— aiohttp и другие HTTP-серверах;
— await‑запросы к БД.

Теперь нет нужды вставлять логи или использовать профайлеры — диагностика идет вживую и позволит увидеть:
— какие запросы обрабатываются дольше всего;
— какие «вешают» бота;
— какие запросы ожидают своей очереди.

Документация
#факт
@zen_of_python
8🔥5
​​Джависткие Virtual Threads в Python

На официальном форуме Python не на шутку разогнали тред про виртуальные потоки. Идея похожа на OpenJDK Project Loom: такое не потребляет много ресурса.

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

#факт
@zen_of_python
👀1🗿1
Django 20 лет!

Если вы сегодня выпьете, ваша женщина не имеет право осудить вас: такие юбилеи бывают нечасто. Соавтор фреймворка Саймон Виллисон поделился историей проекта в своем блоге. Он также признался, что совсем не умеет доводить идеи до ума. Их накопилось так много, что даже пришлось выуживать из Internet Archive.

Теперь можно проводить тест на возраст «А ты помнишь первую версию фреймворка?"

#факт
@zen_of_python
🍾 — Если за такое не грех и бутылочку откупорить
🍾211
Вышел Python 3.14 RC1: релиз-кандидат с ускоренным интерпретатором

Вышел первый релиз-кандидат Python 3.14 — финальный релиз ожидается в октябре. Среди главных новинок:

— JIT-компилятор теперь работает не только на Linux, но и на macOS и Windows;
— Благодаря PEP 779 Python получает полную поддержку свободных потоков — это шаг к более эффективной многопоточности;
— Появились t-строки — новый синтаксис для шаблонов с переменными прямо внутри строк
— Добавлен модуль compression.zstd для работы с алгоритмом Zstandard прямо «из коробки» и многое другое.

#факт
@zen_of_python
❤‍🔥5🔥43
Будущее Python: какие тренды развития и боли языка

На PyCon 2025 подробно обсудили ключевые тренды:
— продолжающееся доминирование в области ИИ и анализа данных благодаря Pandas, NumPy, TensorFlow, PyTorch, HuggingFace и новой системе RAPIDS;
— рост популярности асинхронных фреймворков и инструментов вроде FastAPI;
— внедрение в сферу IoT — благодаря MicroPython / CircuitPython для систем умного дома.
— продвижение JIT‑компиляции и Tail Calls.

#факт
@zen_of_python
2🆒2
Data Engineering Landscape

Просить собрать вас бинго не буду, но так в 2025 году выглядит подборка топовых продуктов по 11 категориям.

А что бы вы сюда добавили из наших, импортозамещающих продуктов? Как минимум ClickHouse напрашивается.

#факт
@zen_of_python
🔥2🗿1
Полезный мем: переменные или методы, имена которых начинаются с двойного подчёркивания (например, __x), автоматически «искажаются» интерпретатором путём добавления имени класса в начало. Это делается для обеспечения некоторой степени инкапсуляции и предотвращения конфликтов имён в классах-наследниках.

«Приватные» переменные с двойным одчёркиванием на самом деле претерпевают трансформацию имени (Name Mangling).

#кек #факт
@zen_of_python
7
Где арендовать GPU в 2025: подборка GPU‑хостингов с адекватной ценой и SLA

В 2025 году аренда видеокарт в облаке становится всё более актуальной альтернативой покупке собственного оборудования. В обзоре представили подборку провайдеров, которые предлагают топовые видеокарты — от NVIDIA V100 и A40 до мощнейших H100 и A100 для создания кластеров до 8 GPU. Многие из них предоставляют фичу — поминутную / почасовую оплату (pay-as-you-go), что делает такое железо доступным физлицам. Например, на VK Cloud предлагаются GPU L4, Tesla V100 и A100 для задач от видеообработки до глубокого обучения, а Cloud.ru предлагает H100, A100, V100 и A40 с возможностью формирования мощных кластеров.

#факт
@zen_of_python
👍1🐳1
Python в 2025 году: исследование Python Software Foundation

Восьмой ежегодный опрос разработчиков Python, проведённый создателями языка и командой PyCharm, собрал более 30 000 ответов.

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

— Половина сообщества — новички. Интересно, что 50 % опрошенных имеют менее двух лет профессионального опыта в программировании, а 39 % — менее двух лет опыта работы с Python;

— доля респондентов, использующих FastAPI, выросла с 29 до 38%;

— Менеджер пакетов uv становится новым стандартом из-за скорости;

— Использование GPT через Hugging Face Transformers позволяет легко интегрировать ИИ в проекты.

#факт
@zen_of_python
3
Как динамически изменять исходный код функций

В статье «Wicked Python Trickery» Эрик Ма делится необычным и мощным методом динамической модификации исходного кода функций во время выполнения программы.


Что за трюк?

В Python каждая функция имеет атрибут .__code__, который представляет собой объект байткода. Используя функции compile() и exec(), можно создать новый исходный код функции, скомпилировать его в байткод и выполнить в нужном пространстве имён. Это позволяет заменить поведение функции без её явного переопределения:


def something():
raise NotImplementedError()

new_code = """
def something(x: int) -> int:
return x * 2
"""

compiled = compile(new_code, "<magic>", "exec")
ns = {}
exec(compiled, {}, ns)

something_new = ns["something"]
print(something_new(21)) # Выведет 42


Здесь мы создаём новый исходный код функции something, компилируем его и выполняем в пустом пространстве имён. Затем извлекаем новую функцию из этого пространства и вызываем её.


Практическое применение

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

Этот подход позволяет LLM (Large Language Model) генерировать код, который может использовать текущие данные и функции, доступные в глобальном пространстве имён.


Риски безопасности

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

#факт
@zen_of_python
6😱41👎1
Пост для питонисток: история PyLadies

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

От футболки с надписью «Python is for girls» к первому шагу

На заре популярности Python о гендерном балансе в сообществе почти не задумывались. Даже сама Python Software Foundation (PSF), по словам одного из участников документального фильма, состояла «исключительно из белых мужчин».

Даже когда Гвидо ван Россум на одной из PyCon публично заявил, что в PSF нужны женщины, ситуация почти не сдвинулась. В кулуарах и списках рассылки обсуждали код, но не то, как привлечь к этому коду новые голоса.

Прошло время, и выяснилось: простого заявления мало. Сообщество не менялось. Новые женщины-разработчицы по-прежнему чувствовали себя изолированными, а в «ядре» Python не было ни одной из них.

Только когда сам Гвидо решился на личное участие, ситуация начала меняться. Он взял на себя роль ментора для разработчицы Мариатты Виджайа, которая сначала сомневалась, «достойна ли» просить о поддержке создателя языка. Менторство Гвидо помогло ей преодолеть барьер и в итоге стать одной из первых женщин — Python Core Developers.

Сегодня именно две женщины, включая Мариатту, входят в PSF. Порой первым действовать должен начать глава.

PyLadies сегодня

Для крупных городов и даже целых стран начали создаваться локальные отделения: Pyadies Moscow, PyLadies Kazan, PyLadies Saint Petersburg. Только в этих сообществах, по мнению админа, сейчас как-то слишком тихо.

PyLadies не только увеличили долю женщин-спикеров на PyCon (с 1% в 2011 году до 40% в 2016-м), но и изменили саму культуру Python.

#факт
@zen_of_python
5🙉2😁1💅1
ИИ впервые создал новые вирусы, которые убивают устойчивые к антибиотикам бактерии

Проблема растущей резистентности к антибиотикам становится всё более серьёзной — многие привычные лекарства уже не действуют. Учёные использовали языковую модель, обученную на миллионах фаговых геномов, чтобы создать варианты, которых не было в природе, и успешно протестировали их на устойчивых штаммах. И все это на Python. Некоторые из сгенерированных вирусов смогли преодолеть устойчивость всего за 1-5 поколений, в то время как оригинальный фаг без ИИ-адаптации не справлялся. Работа открывает путь к «кастомной фаготерапии» — лечению, адаптированному под конкретную бактериальную угрозу.

#факт
@zen_of_python
🤔2
Смысл жизни по Монти Пайтону (1983)

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

Если вам нужен фильм на выходные, и вы хотите знать, чем же так юмористы вдохновили создателя ЯП Гвидо ван Россума, посмотрите одну из их шедевральных полнометражек — «Смысл жизни по Монти Пайтону».

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

#факт
@zen_of_python
❤‍🔥3😱1
Вышел Django 6.0 (альфа-версия)

17 сентября 2025 года команда Django представила шестую версию фреймворка. Это новый крупный релиз, в котором есть несколько фундаментальных улучшений.

Поддержка новых версий Python

🔘 Django 6 официально поддерживает Python 3.12 и 3.13;
🔘 Поддержка Python 3.10 и 3.11 прекращена.


Поддержка CSP

Content Security Policy (CSP) — это механизм безопасности веб-приложений, который через специальные HTTP-заголовки ограничивает, какие скрипты, стили и ресурсы может загружать и выполнять браузер, защищая от XSS и похожих атак.

Ранее для CSP приходилось ставить сторонние пакеты. Теперь же:

🔘CSP встроен в ядро Django;
🔘Поддерживаются nonce-атрибуты для защиты inline-скриптов;
🔘Настройка выполняется через middleware и шаблонные процессоры;

Это сократит ваш requirements.txt и обеспечит больше безопасности «из коробки».


Фоновые задачи

Одно из самых ожидаемых нововведений: встроенная система фоновых задач. Новый декоратор @task позволяет превращать любую функцию в асинхронное задание.

🔘 ImmediateBackend — выполняет задачу сразу (удобно для разработки)
🔘 DummyBackend — добавляет задачу в очередь, но не исполняет (для тестирования логики)

В будущем планируются интеграции с реальными брокерами (Postgres, Redis, RabbitMQ).


Template Partials: переиспользуемые компоненты
Фронтенд-разработчикам понравится. Новый механизм partials:

🔘 Позволяет определять фрагменты шаблона через partialdef;
🔘 Поддерживает параметры и повторное использование в циклах и разных местах страницы;
🔘 Устраняет дублирование кода, упрощает дизайн-системы на Django Templates.

Это шаг в сторону компонентного подхода, знакомого пользователям React / Vue, но в экосистеме Django.


Другие изменения
🔘 В циклах теперь можно использовать forloop.length, чтобы узнать размер итерации (ранее были только forloop.counter, forloop.first, forloop.last и т.п.)
🔘 Более корректная работа с Unicode, MIME-типами и вложениями в емейлах;
🔘 Обновления для PostgreSQL и других баз данных;
🔘 Традиционные улучшения производительности и совместимости;
🔘 Альфа-релиз означает feature freeze: новые возможности добавлены, впереди тестирование и исправление багов.

#факт
@zen_of_python
Please open Telegram to view this post
VIEW IN TELEGRAM
👍81
Что нового в Python 3.14: разбираем главные изменения

В статье на Tproger рассказали о ключевых нововведениях Python 3.14:
— t-строки (строки-шаблоны с префиксом t), которые не вычисляются сразу, а дают разработчику контроль над подстановкой значений;
— отложенные аннотации типов, которые вычисляются только при первом доступе, что решает проблемы с циклическими импортами;
— новые методы pathlib (copy, move) и другие новшества.

#факт
@zen_of_python
PEP 804 | Про разные зависимости в разных ОС

Новый Python Enhancement Proposal вводит механизм мэппинга внешних зависимостей для разных операционок.

Пример

Если пакет A требует внешнюю библиотеку zlib, в pyproject.toml указывают, например, dep:generic/zlib. С помощью маппингов можно получить, что на Debian это zlib1g-dev, на Fedora — zlib-devel, или в conda — zlib. Инструмент выдаст команду в зависимости от текущей экосистемы:


sudo apt install zlib1g-dev


или


conda install zlib


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

p.s. На изображении гипотетический мэппинг для conda-forge.

#факт
@zen_of_python
4
​​Python снова № 1 в рейтинге ЯП, но...

IEEE Spectrum (популярный в США журнал для инженеров всех направлений) опубликовал рейтинг языков программирования 2025 года, и Python снова оказался на первом месте. Авторы рейтинга отмечают, что привычные способы измерять популярность перестали работать. Запросов на форумах вроде Stack Overflow — лишь 22% от прежнего уровня, ведь теперь разработчики задают вопросы напрямую ИИ. Авторы отмечают, что роль программиста меняется — важнее становятся архитектура, алгоритмы и интеграция систем, а не знание синтаксиса. При этом новым языкам всё труднее пробиваться, потому что LLM-модели тяготеют к уже распространённым инструментам.

#факт
@zen_of_python
1👍1🌚1
Почему Python так популярен в 2025-м году?

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


Что делает Python таким популярным?

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

🔘Ключевая роль в AI, ML и науке о данных
Python давно прочно обосновался в экосистеме машинного обучения, искусственного интеллекта и обработки данных. В отчёте JetBrains «The State of Python 2025» указано, что примерно 41% разработчиков используют Python специально для задач машинного обучения. Широкий набор библиотек и фреймворков: PyTorch, TensorFlow, Keras, scikit-learn, Hugging Face Transformers — все они предоставляют зрелые, постоянно развивающиеся инструменты для исследователей и продакшн-инженеров.

🔘Универсальность: от скриптов до крупных систем
Python используется в самых разнообразных задачах:
— Веб-разработка: популярные фреймворки (Django, Flask, FastAPI) позволяют строить как простые приложения, так и масштабные сервисы;
— Автоматизация и инфраструктурные скрипты: благодаря лёгкости запуска, большому выбору библиотек и встроенной поддержке многих протоколов и форматов;
— Инструменты разработки, прототипы, доказательство концепции (POC): Python часто выбирают тогда, когда нужно быстро создать рабочее решение и проверить идею;
— Научные вычисления и инженерные задачи: благодаря библиотекам как NumPy, SciPy, Sympy и др.

Такой спектр применения делает Python «языком на все случаи», что снижает риск переключения на другой язык при росте проекта.

🔘Сообщество, документация и экосистемный эффект
Невозможно недооценивать роль сообщества в успехе Python:
— Огромное количество библиотек и фреймворков, созданных сообществом, часто с открытым исходным кодом;
— Качественная документация, туториалы, обсуждения: многие проблемы уже задокументированы, многие вопросы обсуждены на форумах, в блогах и на Stack Overflow.

Эффект «чем больше пользователей — тем больше инструментов — тем больше новых пользователей»: эта положительная обратная связь укрепляет позиции языка.

🔘Совместимость, обратная совместимость и эволюция
Python исторически стремится к обратной совместимости: код, написанный на старых версиях, часто может работать на новых с минимальными правками. Это снижает «технический долг» и барьеры для обновлений. К тому же новые версии языка приносят прирост производительности и оптимизации без значительного изменения синтаксиса. В отчёте указано, что многие разработчики просто не меняют версии, потому что текущая версия «удовлетворяет все нужды» — 53%.

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

#факт
@zen_of_python
Please open Telegram to view this post
VIEW IN TELEGRAM
2
Python 3.14 на 27% быстрее предшественников

Сразу после выхода этой минорной версии языкового пакета с поддержкой free-threading (многопоточности без глобальной блокировки GIL), один разработчик провел тесты скорости. В подборку сравнения попали CPython 3.9–3.14, PyPy 3.11, Node.js 24 и Rust 1.9. Их сравнивали при рекурсивном вычислении чисел Фибоначчи и сортировке пузырьком. Подробнее о результатах в статье.

#факт
@zen_of_python
🔥82❤‍🔥1