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
В сети мельтешит мини-тренд «Алфавиты от ChatGPT», и админы заморочились на питоническую версию такого, со встроенными модулями, фреймворками, библиотеками и прочими технологиями. Что бы такого поставить на букву Y?

#кек
@zen_of_python
👍4
В слоях нейросетей сейчас видят больше красоты
#кек
@zen_of_python
😁132
​​@pyainter_bot | ИИ-тренер по Python

Разработчики, которые доводят свои пет-проекты до ума, существуют... Один из них создал питонического тренера в Telegram для собеседований. Среди фичей:

— Система начисления очков;
— Множество разделов (Основы Python, ООП, Базы данных, Тестирование и проч.);
— Режим «злого учителя»: бот гоняет вас на слабые темы;

Проект опенсорсный. Если вам захотелось выставить свою LLM и задать ей свои промты, дерзайте.

Репозиторий проекта
#инструмент #собеседование
@zen_of_python
❤‍🔥5👎21
​​10 библиотек Python, которые меняют карьеру

В топе по версии Tproger оказались не новинки, а самая настоящая база. Даже в рамках Python-специальностей (Fullstack Python Developer, Data Scientist, Data Engineer и проч.) есть общий для всех знаменатель — pandas, FastAPI, Django. Взгляните, кто еще попал в подборку, там найдутся и новые «убийцы» привычных технологий.

#инструмент
@zen_of_python
👍31🤔1
Forwarded from Типичный программист
Goalkicker: сайт с бесплатными папирами по программированию

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

Так что если нужен быстрый чеклист, подсказка или мини-учебник — вот оно.
🔥3👍1
​​TorchLeet | Литкод про PyTorch

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

#инструмент
@zen_of_python
1👍1
Почему некоторые исключения не попадают в лог и как это исправить

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 или на почту);
— Снимать дампы или делать очистку.

#основы
🔥162😎1
​​Нейросети в контенте: опрос

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

#опрос
@zen_of_python
1🗿1
Вышел Python 3.14 RC1: релиз-кандидат с ускоренным интерпретатором

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

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

#факт
@zen_of_python
❤‍🔥5🔥31
​​Опрос от Tproger: LifeStyle

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

#опрос
@zen_of_python
🍌1🗿1
Вопросы подписчиков

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

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

#вопросы_новичков
@zen_of_python
А ведь предполагал, что понятное изложение сложного привлечет к чтению. А в итоге LLM галлюцинируют убедительнее.

#кек
@zen_of_python
😈3
🤣28😁32💋1
Кроссплатформенные приложения на Python: весь путь от API до десктопа и веба

Не обязательно учить полдюжины языков и городить велосипед, чтобы собрать работающий кроссплатформенный продукт. В этой статье автор делится практическим опытом: как на одном только Python собрать backend на FastAPI, фронтенд на Flet, задеплоить всё это в облако и собрать под десктоп и веб.

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

Если вы уже освоились с Python и хотите попробовать собрать свой первый «всё‑в‑одном» проект, материал очень пригодится — от шаблонов кода до тонкостей деплоя и сборки.

А вы бы рискнули собрать свой API и фронт на Python, или сразу пошли бы во Flutter?

❤️ — «да, попробую»
🗿 — «лучше Flutter»!


#python #flet #fastapi #кроссплатформенность #разработка
4👍1🌚1
​​5 архитектурных ошибок, которые мы совершаем при старте проектов

Многие из нас с головой уходят в реализацию идеи, не задавая себе главный вопрос: а что будет, когда проект вырастет? 

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

В статье Tproger 5 самых частых архитектурных ошибок, которые мешают проектам расти и развиваться.

#основы
@zen_of_python
🙊 — Если сам так писал
2👍1