Forwarded from Типичный программист
Goalkicker: сайт с бесплатными папирами по программированию
Ресурс объединяет сотни PDF-книг по языкам и технологиям: Python, Go, JavaScript, C#, SQL, Docker и десятки других тем. Книги созданы на основе самых полезных ответов Stack Overflow, регулярно обновляются и доступны абсолютно бесплатно.
Так что если нужен быстрый чеклист, подсказка или мини-учебник — вот оно.
Ресурс объединяет сотни PDF-книг по языкам и технологиям: Python, Go, JavaScript, C#, SQL, Docker и десятки других тем. Книги созданы на основе самых полезных ответов Stack Overflow, регулярно обновляются и доступны абсолютно бесплатно.
Так что если нужен быстрый чеклист, подсказка или мини-учебник — вот оно.
🔥3👍1
TorchLeet | Литкод про PyTorch
Момент настал, и вы достаточно хардкорный питонист, чтобы осваивать PyTorch, со сложной документацией и безграничными возможностями. Если ваша цель — создать свою ChatGPT, вам точно понадобится хорошо знать этот фреймворк, и с этим поможет опенсорсный специализированный 'LeetCode'. Задачи разделены на четыре уровня сложности, среди тем: функция активации, потери, CNN, RNN, LSTM и даже LLM.
#инструмент
@zen_of_python
Момент настал, и вы достаточно хардкорный питонист, чтобы осваивать PyTorch, со сложной документацией и безграничными возможностями. Если ваша цель — создать свою ChatGPT, вам точно понадобится хорошо знать этот фреймворк, и с этим поможет опенсорсный специализированный 'LeetCode'. Задачи разделены на четыре уровня сложности, среди тем: функция активации, потери, CNN, RNN, LSTM и даже LLM.
#инструмент
@zen_of_python
✍1👍1
Почему некоторые исключения не попадают в лог и как это исправить
Если да — вы столкнулись с одной из малозаметных, но опасных особенностей Python — «непойманные исключения» (
В этом посте мы разберёмся, почему такое вообще случается, как надежно логировать любые исключения.
Рассмотрим следующий код:
В консоли вы увидите traceback:
А в
Никакой информации об ошибке. И это сгенерирует вам часы работы.
Почему так происходит?
Библиотека logging в Python не логирует ошибки сама по себе: она просто предоставляет инструменты для записи. Если программа падает из-за исключения, и это исключение не обрабатывается в
Плохое (но распространённое) решение
Один из способов «поймать всё» — обернуть
Это сработает:
— Вы можете пропустить системные исключения (
— Такой код трудно масштабировать: оборачивать каждый
— Это маскирует архитектурные проблемы: непойманные исключения — это чаще всего баг, а не ожидаемое поведение.
Правильное решение:
Python дает глобально обрабатывать непойманные исключения —
Теперь, если запустить скрипт:
— В
— Вы будете уверены, что даже критические ошибки попадут в лог, прежде чем приложение завершится.
Когда в Python возникает исключение, и его никто не перехватывает, вызывается sys.excepthook(type, value, traceback). По умолчанию она просто печатает детали в
— Логировать ошибки;
— Отправлять оповещения (например, в Telegram или на почту);
— Снимать дампы или делать очистку.
#основы
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 или на почту);
— Снимать дампы или делать очистку.
#основы
🔥17❤3👍1😎1
Нейросети в контенте: опрос
Многие из нас в прямой или иной форме создаем контент, будь то личный блог или написание кода для проекта. В Tproger проводят опрос о роли LLM в работе айтишников. Проходите, опрос даже немного познавательный. Результатами мы обязательно поделимся.
#опрос
@zen_of_python
Многие из нас в прямой или иной форме создаем контент, будь то личный блог или написание кода для проекта. В Tproger проводят опрос о роли LLM в работе айтишников. Проходите, опрос даже немного познавательный. Результатами мы обязательно поделимся.
#опрос
@zen_of_python
❤1🗿1
Вышел Python 3.14 RC1: релиз-кандидат с ускоренным интерпретатором
Вышел первый релиз-кандидат Python 3.14 — финальный релиз ожидается в октябре. Среди главных новинок:
— JIT-компилятор теперь работает не только на Linux, но и на macOS и Windows;
— Благодаря PEP 779 Python получает полную поддержку свободных потоков — это шаг к более эффективной многопоточности;
— Появились t-строки — новый синтаксис для шаблонов с переменными прямо внутри строк
— Добавлен модуль
#факт
@zen_of_python
Вышел первый релиз-кандидат Python 3.14 — финальный релиз ожидается в октябре. Среди главных новинок:
— JIT-компилятор теперь работает не только на Linux, но и на macOS и Windows;
— Благодаря PEP 779 Python получает полную поддержку свободных потоков — это шаг к более эффективной многопоточности;
— Появились t-строки — новый синтаксис для шаблонов с переменными прямо внутри строк
— Добавлен модуль
compression.zstd
для работы с алгоритмом Zstandard прямо «из коробки» и многое другое.#факт
@zen_of_python
❤🔥5🔥3❤2
Опрос от Tproger: LifeStyle
Если вы тоже хотите знать больше о подписчиках по соседству, пройдите опрос Tproger. Он не только про специализацию и грейд, но больше про окружающую айтишники жизнь. Результатами обязательно поделимся.
#опрос
@zen_of_python
Если вы тоже хотите знать больше о подписчиках по соседству, пройдите опрос Tproger. Он не только про специализацию и грейд, но больше про окружающую айтишники жизнь. Результатами обязательно поделимся.
#опрос
@zen_of_python
🍌1🗿1
Вопросы подписчиков
Zen of Python поддерживает новоприбывших (и не только) в особой рубрике. Как это работает:
— Спрашивайте что угодно (в комментариях под этим постом), связанное с Python. Здесь нет плохих вопросов!
— Сообщество вас поддержит. Самые интересные вопросы мы разберём в отдельном посте;
#вопросы_новичков
@zen_of_python
Zen of Python поддерживает новоприбывших (и не только) в особой рубрике. Как это работает:
— Спрашивайте что угодно (в комментариях под этим постом), связанное с Python. Здесь нет плохих вопросов!
— Сообщество вас поддержит. Самые интересные вопросы мы разберём в отдельном посте;
#вопросы_новичков
@zen_of_python
❤1
А ведь предполагал, что понятное изложение сложного привлечет к чтению. А в итоге LLM галлюцинируют убедительнее.
#кек
@zen_of_python
#кек
@zen_of_python
😈4😁2
Forwarded from Точка входа в программирование
Кроссплатформенные приложения на Python: весь путь от API до десктопа и веба
Не обязательно учить полдюжины языков и городить велосипед, чтобы собрать работающий кроссплатформенный продукт. В этой статье автор делится практическим опытом: как на одном только Python собрать backend на FastAPI, фронтенд на Flet, задеплоить всё это в облако и собрать под десктоп и веб.
По дороге — много интересных наблюдений и подводных камней: чем Flet радует, а где его кроссплатформенность пока только на бумаге, почему простые вещи лучше делать «без заморочек», а фанатам стоит готовить десятки гигабайт SDK и терпение.
Если вы уже освоились с Python и хотите попробовать собрать свой первый «всё‑в‑одном» проект, материал очень пригодится — от шаблонов кода до тонкостей деплоя и сборки.
А вы бы рискнули собрать свой API и фронт на Python, или сразу пошли бы во Flutter?
❤️ — «да, попробую»
🗿 — «лучше Flutter»!
#python #flet #fastapi #кроссплатформенность #разработка
Не обязательно учить полдюжины языков и городить велосипед, чтобы собрать работающий кроссплатформенный продукт. В этой статье автор делится практическим опытом: как на одном только Python собрать backend на FastAPI, фронтенд на Flet, задеплоить всё это в облако и собрать под десктоп и веб.
По дороге — много интересных наблюдений и подводных камней: чем Flet радует, а где его кроссплатформенность пока только на бумаге, почему простые вещи лучше делать «без заморочек», а фанатам стоит готовить десятки гигабайт SDK и терпение.
Если вы уже освоились с Python и хотите попробовать собрать свой первый «всё‑в‑одном» проект, материал очень пригодится — от шаблонов кода до тонкостей деплоя и сборки.
А вы бы рискнули собрать свой API и фронт на Python, или сразу пошли бы во Flutter?
❤️ — «да, попробую»
🗿 — «лучше Flutter»!
#python #flet #fastapi #кроссплатформенность #разработка
❤7🌚2👍1🗿1
5 архитектурных ошибок, которые мы совершаем при старте проектов
Многие из нас с головой уходят в реализацию идеи, не задавая себе главный вопрос: а что будет, когда проект вырастет?
Аспекты вроде масштабирования, как и фундамент дома, нужно продумывать сначала, иначе потом вас ждет не апгрейд, а перестройка с нуля. А еще именно в самом начале проекта закладывается почва для ада зависимостей: спонтанные решения, быстрые фиксы, «временные» костыли — всё это превращается в хаос, который сложно контролировать.
В статье Tproger 5 самых частых архитектурных ошибок, которые мешают проектам расти и развиваться.
#основы
@zen_of_python
🙊 — Если сам так писал
Многие из нас с головой уходят в реализацию идеи, не задавая себе главный вопрос: а что будет, когда проект вырастет?
Аспекты вроде масштабирования, как и фундамент дома, нужно продумывать сначала, иначе потом вас ждет не апгрейд, а перестройка с нуля. А еще именно в самом начале проекта закладывается почва для ада зависимостей: спонтанные решения, быстрые фиксы, «временные» костыли — всё это превращается в хаос, который сложно контролировать.
В статье Tproger 5 самых частых архитектурных ошибок, которые мешают проектам расти и развиваться.
#основы
@zen_of_python
🙊 — Если сам так писал
☃2👍2🎉1
Вопрос подписчика
Задает @vberia:
«Какие LLM лучше всего пишут/оптимизируют код Python?»
От админа: у нас куплен Cursor (Team) на сразу несколько команд разработки. Ошибки плодит в 99,9% только при недостаточной подаче контекста.
#обсуждение
@zen_of_python
Задает @vberia:
«Какие LLM лучше всего пишут/оптимизируют код Python?»
От админа: у нас куплен Cursor (Team) на сразу несколько команд разработки. Ошибки плодит в 99,9% только при недостаточной подаче контекста.
#обсуждение
@zen_of_python
✍1
Будущее Python: какие тренды развития и боли языка
На PyCon 2025 подробно обсудили ключевые тренды:
— продолжающееся доминирование в области ИИ и анализа данных благодаря Pandas, NumPy, TensorFlow, PyTorch, HuggingFace и новой системе RAPIDS;
— рост популярности асинхронных фреймворков и инструментов вроде FastAPI;
— внедрение в сферу IoT — благодаря MicroPython / CircuitPython для систем умного дома.
— продвижение JIT‑компиляции и Tail Calls.
#факт
@zen_of_python
На PyCon 2025 подробно обсудили ключевые тренды:
— продолжающееся доминирование в области ИИ и анализа данных благодаря Pandas, NumPy, TensorFlow, PyTorch, HuggingFace и новой системе RAPIDS;
— рост популярности асинхронных фреймворков и инструментов вроде FastAPI;
— внедрение в сферу IoT — благодаря MicroPython / CircuitPython для систем умного дома.
— продвижение JIT‑компиляции и Tail Calls.
#факт
@zen_of_python
❤2🆒2
Вопрос подписчика
Задает @Greatest_Of_AlI_Time:
«Какая книга или пособие на русском языке самое лучшее и понятное для изучения?»
От админа:
— если хочется погрузиться в талмуд, то «Python. Справочник» Мартелли А,
— если хочется карманный справочник, то Лутц М. «Python. Карманный справочник»
#обсуждение
@zen_of_python
Задает @Greatest_Of_AlI_Time:
«Какая книга или пособие на русском языке самое лучшее и понятное для изучения?»
От админа:
— если хочется погрузиться в талмуд, то «Python. Справочник» Мартелли А,
— если хочется карманный справочник, то Лутц М. «Python. Карманный справочник»
#обсуждение
@zen_of_python
❤🔥3✍2❤1😁1
isinstance()
: Проверка типовВ динамически типизированных языках нам особенно важно знать тип объекта, которым мы оперируем. С этим помогают две встроенные функции —
type()
и isinstance()
, и мы поговорим сегодня о второй из них.
isinstance(object, classinfo)
—
object
: объект, тип которого вы хотите проверить—
classinfo
: класс, тип или кортеж типов
# Является ли 42 целочисленным значением?
isinstance(42, int) # True
# Относится ли "hello" к одному из типов str / list (логическое «ИЛИ»)?
isinstance("hello", (str, list)) # True
isinstance() vs type()
Поначалу может показаться, что
type()
делает то же самое:
type(42) == int # True
Но
isinstance()
, в свою очередь, учитывает наследование:
class Animal:
pass
class Dog(Animal):
pass
dog = Dog()
type(dog) == Animal # False
isinstance(dog, Animal) # True
Это делает
isinstance()
предпочтительным выбором при работе с иерархиями классов.#основы
👍12
This media is not supported in your browser
VIEW IN TELEGRAM
force-push-scanner | Спасаем ваши креды от «закоммичивания»
Это инструмент для обнаружения «висячих» коммитов, которые остаются в истории Git после git push --force. Он анализирует события из GHArchive, чтобы выявить случаи перезаписи истории с нулевым количеством коммитов, часто скрывающих удалённые секреты. Инструмент позволяет сканировать как отдельные репозитории, так и целые организации в GitHub через командную строку. .
Репозиторий проекта
#инструмент
@zen_of_python
Это инструмент для обнаружения «висячих» коммитов, которые остаются в истории Git после git push --force. Он анализирует события из GHArchive, чтобы выявить случаи перезаписи истории с нулевым количеством коммитов, часто скрывающих удалённые секреты. Инструмент позволяет сканировать как отдельные репозитории, так и целые организации в GitHub через командную строку. .
Репозиторий проекта
#инструмент
@zen_of_python
⚡1👎1
Agile в сторону! Доверьте планирование своей жизни IT-колоде
Тем более что наши арканы уже приготовили для вас послание. Переходите по ссылке, вытаскивайте карту и узнавайте, что вас ждёт сегодня, завтра и в другие дни спринта: https://tprg.ru/Bs2h
Реклама
Тем более что наши арканы уже приготовили для вас послание. Переходите по ссылке, вытаскивайте карту и узнавайте, что вас ждёт сегодня, завтра и в другие дни спринта: https://tprg.ru/Bs2h
Реклама
🌚1🌭1
Zango | Над Django
На DjangoCon Europe 2025 презентовали новый «метафреймворк». Его архитектура использует Django как фундамент (ORM, миграции, middleware и пр.) и обещает ускоренную разработку бизнес-приложений: CRM, ERP и прочая внутрянка. Среди его фичей — способность содержать несколько микросервисов как монолит;
#инструмент
@zen_of_python
На DjangoCon Europe 2025 презентовали новый «метафреймворк». Его архитектура использует Django как фундамент (ORM, миграции, middleware и пр.) и обещает ускоренную разработку бизнес-приложений: CRM, ERP и прочая внутрянка. Среди его фичей — способность содержать несколько микросервисов как монолит;
#инструмент
@zen_of_python
👀8👎1