Лента постов канала Zen of Python (@zen_of_python) https://t.me/zen_of_python Полный Дзен Пайтона в одном канале Купить рекламу: https://tprg.ru/U7pZ По вопросам рекламы: @tproger_sales_bot Правила общения: https://tprg.ru/rules Другие каналы: @tproger_channels ru https://linkbaza.com/catalog/-1001311452586 Sun, 17 Aug 2025 11:13:01 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001311452586 Sun, 17 Aug 2025 10:02:01 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001311452586 Sat, 16 Aug 2025 18:11:32 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001311452586 Sat, 16 Aug 2025 11:11:01 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001311452586 Fri, 15 Aug 2025 18:09:01 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001311452586 Fri, 15 Aug 2025 11:09:01 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001311452586 Thu, 14 Aug 2025 18:07:01 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001311452586 Thu, 14 Aug 2025 16:58:36 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001311452586 Thu, 14 Aug 2025 14:01:40 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001311452586 Thu, 14 Aug 2025 11:07:01 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001311452586 Wed, 13 Aug 2025 18:05:55 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001311452586 Wed, 13 Aug 2025 11:05:57 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001311452586 Tue, 12 Aug 2025 18:03:01 +0300
void | Опенсорсный Cursor

Клоны Cursor сыплются, как из рога изобилия в 2025 году. Все, как и везде: автокомплиты, чатик в окне справа, UI — как у еще одного форка VSCode. Множество популярных условно-бесплатных LLM (DeepSeek, Llama, Gemini, Qwen) или ваша оплаченная альтернатива вроде Gemini 2.5, Claude 3.7, Grok 3, o4-mini, and Qwen 3.

#инструмент
@zen_of_python
Подробнее
]]>
https://linkbaza.com/catalog/-1001311452586 Tue, 12 Aug 2025 11:03:06 +0300
Разработчики всё меньше доверяют ИИ, хоть и чаще к нему обращаются...

Stack Overflow провели большое исследование, в результате которого выяснили, что лишь 29% опрошенных считают ИИ надёжным.

Эти и другие любопытные факты — по ссылке.

#для_АйтИИ
Подробнее
]]>
https://linkbaza.com/catalog/-1001311452586 Mon, 11 Aug 2025 18:01:14 +0300
argparse: зачем нужен и при чем здесь sys.argv()?

При создании скриптов, которые запускаются из командной строки, часто возникает необходимость принимать аргументы. Чтобы эффективно разбирать и обрабатывать эти параметры, в стандартной библиотеке Python есть модуль argparse. В этом лонгриде мы покажем на примере, как его использовать, покажем взаимосвязь с sys.argv.


➡️ Какую роль играет sys.argv?

sys.argv — это список, содержащий аргументы командной строки, с которыми был запущен скрипт. Первый элемент списка sys.argv[0] — это имя самого скрипта.

Например, если вы вызовете скрипт так:


python script.py filename.txt -v


то выведется такой перечень:


import sys

print(sys.argv) # ['script.py', 'filename.txt', '-v']


Однако sys.argv — это просто список строк, и если работать с ним вручную, то придётся самостоятельно обрабатывать порядок, типы данных, проверять правильность и т.п., что может стать сложной задачей. Здесь на помощь приходит argparse. Он автоматизирует парсинг аргументов и предоставляет удобные способы проверки параметров CLI.


➡️ argparse: как с ним обращаться

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

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


import argparse

# Создаём парсер
parser = argparse.ArgumentParser(description='Обработка файла.') # Создаем объект ArgumentParser;

# Добавляем позиционный аргумент 'filename'
parser.add_argument('filename', help='имя файла для обработки') # Добавляем описание каждого аргумента или опции

# Разбираем аргументы командной строки
args = parser.parse_args() # Разберём аргументы sys.argv

# Fргументы доступны как атрибуты: args.filename
print(f'Обрабатываем файл: {args.filename}')


Теперь, если запустить скрипт так:


python script.py example.txt


Программа выведет:


Обрабатываем файл: example.txt


Если попытаться запустить без аргумента:


python script.py


то argparse автоматически покажет сообщение об ошибке и краткую справку:


usage: script.py [-h] filename
script.py: error: the following arguments are required: filename


Документация
#основы
@zen_of_python
🙏 — Если спасибо за такой контент
Подробнее
]]>
https://linkbaza.com/catalog/-1001311452586 Mon, 11 Aug 2025 11:01:01 +0300
vulnhuntr | Пусть уязвимости ищет LLM

Хватит уже плодить небезопасный нагенеренный код... Лучше искать с помощью ChatGPT / Cursor / Claude дыры в системах. Библиотека сканирует весь код питонического проекта и находит прорехи по типу SSRF, XSS и проч.

#инструмент
@zen_of_python
Подробнее
]]>
https://linkbaza.com/catalog/-1001311452586 Sun, 10 Aug 2025 18:13:01 +0300
От перевёрнутого логотипа С++ из глаз пошла кровь...

@ithumor
Подробнее
]]>
https://linkbaza.com/catalog/-1001311452586 Sun, 10 Aug 2025 11:13:01 +0300
#кек
@zen_of_python
Подробнее
]]>
https://linkbaza.com/catalog/-1001311452586 Sat, 09 Aug 2025 18:11:01 +0300
Жизненный цикл объекта — настоящего питониста

#кек
@zen_of_python
Подробнее
]]>
https://linkbaza.com/catalog/-1001311452586 Sat, 09 Aug 2025 11:11:01 +0300
#кек
@zen_of_python
Подробнее
]]>
https://linkbaza.com/catalog/-1001311452586 Fri, 08 Aug 2025 11:09:01 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001311452586 Thu, 07 Aug 2025 18:07:01 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001311452586 Thu, 07 Aug 2025 14:02:01 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001311452586 Thu, 07 Aug 2025 11:07:01 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001311452586 Wed, 06 Aug 2025 11:06:01 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001311452586 Tue, 05 Aug 2025 18:03:01 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001311452586 Tue, 05 Aug 2025 11:03:01 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001311452586 Mon, 04 Aug 2025 18:01:11 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001311452586 Mon, 04 Aug 2025 11:01:01 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001311452586 Mon, 04 Aug 2025 11:01:01 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001311452586 Sun, 03 Aug 2025 18:13:01 +0300
Импортируешь логгер, чтобы написать logger.warn("here")

@ithumor
Подробнее
]]>
https://linkbaza.com/catalog/-1001311452586 Sun, 03 Aug 2025 13:22:58 +0300
Если из компьютера вылез питончик, то вы кодите правильно. Это пасхалка от PSF

#кек
@zen_of_python
Подробнее
]]>
https://linkbaza.com/catalog/-1001311452586 Sun, 03 Aug 2025 00:24:22 +0300
#кек
@zen_of_python
Подробнее
]]>
https://linkbaza.com/catalog/-1001311452586 Fri, 01 Aug 2025 18:09:35 +0300
Вопросы подписчиков

Zen of Python поддерживает новоприбывших (и не только) в особой рубрике. Как это работает:

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

#вопросы_новичков
@zen_of_python
Подробнее
]]>
https://linkbaza.com/catalog/-1001311452586 Fri, 01 Aug 2025 11:09:01 +0300
trae-agent | LLM в CLI

Если Господь Бог вас наказал и вы кодите прямо в командной строке, а на дворе 2025-й, то лучше делать это с LLM. Библиотека позволяет фиксить, дописывать и читать логи вместе с вашей любимой нейронкой, понимающей естественный язык.

#инструмент
@zen_of_python
🤗 — Если за идею хочется приобнять создателей
Подробнее
]]>
https://linkbaza.com/catalog/-1001311452586 Thu, 31 Jul 2025 18:07:53 +0300
Zango | Над Django

На DjangoCon Europe 2025 презентовали новый «метафреймворк». Его архитектура использует Django как фундамент (ORM, миграции, middleware и пр.) и обещает ускоренную разработку бизнес-приложений: CRM, ERP и прочая внутрянка. Среди его фичей — способность содержать несколько микросервисов как монолит;

#инструмент
@zen_of_python
Подробнее
]]>
https://linkbaza.com/catalog/-1001311452586 Thu, 31 Jul 2025 12:52:26 +0300
Agile в сторону! Доверьте планирование своей жизни IT-колоде

Тем более что наши арканы уже приготовили для вас послание. Переходите по ссылке, вытаскивайте карту и узнавайте, что вас ждёт сегодня, завтра и в другие дни спринта: https://tprg.ru/Bs2h

Реклама
Подробнее
]]>
https://linkbaza.com/catalog/-1001311452586 Thu, 31 Jul 2025 11:07:59 +0300
force-push-scanner | Спасаем ваши креды от «закоммичивания»

Это инструмент для обнаружения «висячих» коммитов, которые остаются в истории Git после git push --force. Он анализирует события из GHArchive, чтобы выявить случаи перезаписи истории с нулевым количеством коммитов, часто скрывающих удалённые секреты. Инструмент позволяет сканировать как отдельные репозитории, так и целые организации в GitHub через командную строку. .

Репозиторий проекта
#инструмент
@zen_of_python
Подробнее
]]>
https://linkbaza.com/catalog/-1001311452586 Wed, 30 Jul 2025 18:06:21 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001311452586 Wed, 30 Jul 2025 11:26:20 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001311452586 Tue, 29 Jul 2025 18:03:14 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001311452586 Tue, 29 Jul 2025 15:36:42 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001311452586 Mon, 28 Jul 2025 18:01:43 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001311452586 Mon, 28 Jul 2025 11:01:08 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001311452586 Sun, 27 Jul 2025 18:13:45 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001311452586 Sun, 27 Jul 2025 11:13:41 +0300
Подробнее
21.33 k
]]>
https://linkbaza.com/catalog/-1001311452586 Sat, 26 Jul 2025 18:11:24 +0300
#кек
@zen_of_python
Подробнее
]]>
https://linkbaza.com/catalog/-1001311452586 Sat, 26 Jul 2025 11:12:10 +0300
А ведь предполагал, что понятное изложение сложного привлечет к чтению. А в итоге LLM галлюцинируют убедительнее.

#кек
@zen_of_python
Подробнее
]]>
https://linkbaza.com/catalog/-1001311452586 Fri, 25 Jul 2025 18:09:23 +0300
Вопросы подписчиков

Zen of Python поддерживает новоприбывших (и не только) в особой рубрике. Как это работает:

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

#вопросы_новичков
@zen_of_python
Подробнее
]]>
https://linkbaza.com/catalog/-1001311452586 Fri, 25 Jul 2025 11:09:19 +0300
​​Опрос от Tproger: LifeStyle

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

#опрос
@zen_of_python
Подробнее
]]>
https://linkbaza.com/catalog/-1001311452586 Thu, 24 Jul 2025 18:07:42 +0300
Вышел Python 3.14 RC1: релиз-кандидат с ускоренным интерпретатором

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

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

#факт
@zen_of_python
Подробнее
]]>
https://linkbaza.com/catalog/-1001311452586 Thu, 24 Jul 2025 11:08:08 +0300
​​Нейросети в контенте: опрос

Многие из нас в прямой или иной форме создаем контент, будь то личный блог или написание кода для проекта. В Tproger проводят опрос о роли LLM в работе айтишников. Проходите, опрос даже немного познавательный. Результатами мы обязательно поделимся.

#опрос
@zen_of_python
Подробнее
]]>
https://linkbaza.com/catalog/-1001311452586 Wed, 23 Jul 2025 18:06:00 +0300
Почему некоторые исключения не попадают в лог и как это исправить

logging — это уже целый стандарт записи ошибок в Python. Ваше приложение запускается, сообщения попадают в лог. Но вдруг в продакшене приложение внезапно «падает», а в логах — тишина. Знакомо?

Если да — вы столкнулись с одной из малозаметных, но опасных особенностей Python — «непойманные исключения» (uncaught exceptions).

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

Рассмотрим следующий код:


import logging

logger = logging.getLogger(__name__)
logging.basicConfig(filename="output.log", level=logging.INFO)

logger.info("Application started")

1 / 0 # деление на ноль


В консоли вы увидите traceback:


Traceback (most recent call last):
...
ZeroDivisionError: division by zero


А в output.log будет только:


INFO:__main__:Application started


Никакой информации об ошибке. И это сгенерирует вам часы работы.

Почему так происходит?

Библиотека logging в Python не логирует ошибки сама по себе: она просто предоставляет инструменты для записи. Если программа падает из-за исключения, и это исключение не обрабатывается в try / except, то встроенный модуль никак не участвует в этом процессе. Потому что стандартный Python-интерпретатор выводит непойманные исключения напрямую в stderr, минуя logging.

Плохое (но распространённое) решение

Один из способов «поймать всё» — обернуть main() в try / except:


def main():
logger.info("Application started")
1 / 0

try:
main()
except Exception as e:
logger.exception("Unhandled exception:")


Это сработает: logger.exception() запишет ошибку и трейсбек. Но есть минусы:

— Вы можете пропустить системные исключения (KeyboardInterrupt и проч., если ловите Exception, а не BaseException;
— Такой код трудно масштабировать: оборачивать каждый main() в каждом скрипте — дублирование;
— Это маскирует архитектурные проблемы: непойманные исключения — это чаще всего баг, а не ожидаемое поведение.


Правильное решение: sys.excepthook

Python дает глобально обрабатывать непойманные исключения — sys.excepthook:


import sys
import logging

logger = logging.getLogger(__name__)
logging.basicConfig(filename="output.log", level=logging.INFO)

def handle_uncaught_exception(exc_type, exc_value, exc_traceback):
logger.critical(
"Uncaught exception. Application will terminate.",
exc_info=(exc_type, exc_value, exc_traceback)
)

sys.excepthook = handle_uncaught_exception

logger.info("Application started")

1 / 0


Теперь, если запустить скрипт:

— В output.log появится подробный трейсбек ошибки;
— Вы будете уверены, что даже критические ошибки попадут в лог, прежде чем приложение завершится.

Когда в Python возникает исключение, и его никто не перехватывает, вызывается sys.excepthook(type, value, traceback). По умолчанию она просто печатает детали в stderr. Но вы можете управлять процессом:

— Логировать ошибки;
— Отправлять оповещения (например, в Telegram или на почту);
— Снимать дампы или делать очистку.

#основы
Подробнее
]]>
https://linkbaza.com/catalog/-1001311452586 Wed, 23 Jul 2025 11:05:56 +0300
​​TorchLeet | Литкод про PyTorch

Момент настал, и вы достаточно хардкорный питонист, чтобы осваивать PyTorch, со сложной документацией и безграничными возможностями. Если ваша цель — создать свою ChatGPT, вам точно понадобится хорошо знать этот фреймворк, и с этим поможет опенсорсный специализированный 'LeetCode'. Задачи разделены на четыре уровня сложности, среди тем: функция активации, потери, CNN, RNN, LSTM и даже LLM.

#инструмент
@zen_of_python
Подробнее
]]>
https://linkbaza.com/catalog/-1001311452586 Tue, 22 Jul 2025 18:03:01 +0300
Goalkicker: сайт с бесплатными папирами по программированию

Ресурс объединяет сотни PDF-книг по языкам и технологиям: Python, Go, JavaScript, C#, SQL, Docker и десятки других тем. Книги созданы на основе самых полезных ответов Stack Overflow, регулярно обновляются и доступны абсолютно бесплатно.

Так что если нужен быстрый чеклист, подсказка или мини-учебник — вот оно.
Подробнее
]]>
https://linkbaza.com/catalog/-1001311452586 Tue, 22 Jul 2025 11:03:55 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001311452586 Mon, 21 Jul 2025 18:01:58 +0300
Подробнее
]]>
https://linkbaza.com/catalog/-1001311452586 Sun, 20 Jul 2025 18:13:38 +0300
Подробнее
]]>