Python обучающий
СтатистикаЗдесь есть всё, чтобы упростить изучение Python. Без воды и сложных терминов. Сотрудничество: @justcage Работаем с @Tgpodbor_official Ссылка РНК: https://clck.ru/3Ghwjd
- Последний пост
- 12 авг.
- Последнее чтение
- 20:17
- Постов за неделю
- 2
- Всего постов
- 22
- Тип
- открытый
- Язык
- русский
- Категория
- Технологии
- В каталоге с
- 12 авг.
- 1/24сутки в ленте
- 1 491
- 1/48двое суток
- 1 708
- 1/72трое суток
- 1 842
Оценка по просмотрам недавних постов: пост набирает почти всё за первые сутки.
Посты
видео или голосовое, без подписи
+1
Выходные, которые настроят твой IT-путь – Сбер.Среда Weekend, 15-16 августа 🧩 Это нишевый фестиваль для своих: тех, кто уже в комьюнити, и тех, кто только ищет себя в IT. Мы создали три среды — ты точно найдёшь свою: 🟢human.env — честные, смешные и местами беспощадные стендапы и рассказы про работу. 🟢growth.env — воркшопы и дискуссии от IT‑сообществ Сбера. С тебя — вопрос, с команды — ответ. 🟢 party.env — DIY, танцы и большая финальная вечеринка с музыкальными хедлайнерами — SALAME, Тима ищет свет и группа Лауд. Выбирай свою среду — или пройди все три: пусть эти выходные станут началом чего‑то большего!
Самая быстрая библиотека для захвата экрана на Windows — d3dshot (работает через DXGI и Direct3D). Идеально для игровых ботов.
Аккуратно игнорируем ошибки без try/except Иногда ошибка — это нормальное поведение программы. Например, файл может не существовать, ключ в кеше — отсутствовать, а удаление временного ресурса — падать. Новички обычно оборачивают такие места в громоздкий try/except, из-за чего код становится шумным и хуже читается. В Python есть элегантное решение — contextlib.suppress. Он позволяет явно указать, какие исключения нужно проигнорировать, не скрывая логику и не перехватывая всё подряд. 🎯 Итог: contextlib.suppress делает код чище и честнее: вы явно показываете, какую ошибку считаете допустимой, без лишнего try/except и хака с pass.
Получаем значения из словаря без KeyError Новички часто сталкиваются с ошибкой KeyError, когда ключа в словаре нет. Вместо проверки через if можно использовать встроенный и безопасный способ. Используй метод dict.get() — он возвращает значение по ключу или None (или значение по умолчанию), если ключ отсутствует. 🎯 Итог: dict.get() делает код короче, безопаснее и избавляет от лишних проверок на существование ключей.
Как красиво логировать объекты без ручного форматирования Когда нужно записать в лог сложный объект (например, dict с вложенными структурами), обычный print() делает кашу. А logging без форматирования выглядит громоздко. Есть быстрый способ — использовать pprint прямо внутри логирования. Хотите логировать сложные структуры красиво и читаемо, но не хотите вручную форматировать JSON или писать многострочные print(). Используйте pprint.pformat() — он превращает объект в красиво отформатированную строку, которая идеально ложится в лог.
Быстрое измерение времени выполнения кода без time и декораторов Иногда нужно прикинуть, сколько реально занимает выполнение фрагмента кода — но не хочется подключать сложные профилировщики. Python даёт простой и элегантный способ измерить время прямо “на лету” с помощью time.perf_counter(). 🎯 Итог: Этот метод позволяет замерять время выполнения любых операций в одном месте, без декораторов и внешних библиотек, и идеально подходит для быстрой диагностики производительности.
Удобный вывод SQL-запросов прямо в консоль с форматированием Когда вы работаете с SQLAlchemy, отладка запросов иногда превращается в хаос — SQL выводится без форматирования, читать трудно, ошибки искать ещё труднее. Python позволяет быстро превратить любой запрос в читабельный SQL с подставленными параметрами. 🎯 Итог: Этот приём позволяет видеть SQL-запросы в чистом виде, как в DBeaver, и экономит массу времени при отладке и оптимизации.
Мессенджер MAX теперь полностью совместим с ОС Аврора отечественной разработки. Это отличная новость для тех, кому не обойтись без смартфонов и планшетов с Авророй на своей работе — сотрудников РЖД, Аэрофлота, Интер РАО, Ростелеком и Почты России. Речь о сотнях тысяч пользователей. Можно смело констатировать: MAX стал ещё доступнее. Хотя нельзя сказать, что национальный мессенджер испытывает дефицит новых пользователей. В ноябре общее число зарегистрированных номеров в MAX превысило 55 млн.
Распаковка (Unpacking) Распаковка позволяет извлекать элементы из коллекций в отдельные переменные за одну операцию. Зачем нужно? Убирает лишние строки кода Делает присваивание более читаемым Идеально для обработки возвращаемых значений функций
Быстрое измерение времени выполнения куска кода Иногда нужно понять, где в проекте просадка по производительности, но тянуть профилировщик — слишком долго. В таких случаях помогает простой таймер через time.perf_counter(). Он даёт высокоточную измерительную шкалу и идеально подходит для быстрого анализа производительности отдельных функций. 🎯 Итог: time.perf_counter() — самый простой способ быстро понять, где код тормозит, без сторонних библиотек и сложных инструментов.
Автоматическое создание таблиц из моделей SQLAlchemy Иногда нужно быстро поднять базу данных на основе ORM-моделей, не создавая миграции вручную. С помощью Base.metadata.create_all() можно автоматически создать все таблицы, определённые в ваших моделях, прямо в базе данных. Это особенно удобно для тестов или прототипов. 🎯 Итог: Base.metadata.create_all() позволяет мгновенно создать все таблицы из моделей без Alembic — идеально для тестов, демо и начальной настройки проекта.
Безопасные параметры в SQL через SQLAlchemy Новички часто формируют SQL строкой, подставляя значения через f-string → это приводит к SQL-инъекциям. Используйте bind-параметры (:param) — SQLAlchemy сам экранирует значения, защищая запрос. Не формируйте SQL вручную через f-string. Используйте :param + словарь → и сразу получаете безопасность и читаемость запроса.
Примите участие в турнире для школьников «Решись!» Турнир «Решись!» — онлайн-состязание для школьников 10—11-х классов по четырем направлениям: разработке, искусственному интеллекту, бизнес-аналитике, а также дизайну. «Решись!» для школьников — это возможность: — получить грант на обучение в Центральном университете до 100% и другие призы; — пополнить портфолио; — проверить знания в ИИ, разработке, дизайне и бизнес-аналитике; — найти новых знакомых в чате турнира. Для участия вы можете выбрать как одно направление, так и все четыре — решать вам. 🕒Регистрация продлится до 12 ноября, 16:00 мск, как и отборочный тур. 👉Подробности о турнире и регистрация на сайте
✅ Проверяем запуск скрипта напрямую: if __name__ == "__main__" Иногда нужно, чтобы часть кода выполнялась только при прямом запуске файла, а не при его импорте в другой модуль. Новички часто удивляются, почему функции выполняются «сами». Python решает это с помощью специальной проверки. 🎯 Итог Используйте if name == "__main__" чтобы управлять тем, выполняется ли код при прямом запуске или же файл лишь импортируется как модуль. Это делает программы чище и удобнее для повторного использования.
🔄 Меняем местами значения без временной переменной Во многих языках для обмена значениями приходится использовать временную переменную, что выглядит громоздко. В Python это делается в одну строку благодаря распаковке кортежей. 🎯 Итог Python позволяет обменивать значения напрямую через множественное присваивание — без временных переменных и лишнего кода. Лаконично и понятно!
🕵️♂️ Измеряем время выполнения кода одной строкой Иногда нужно быстро понять, сколько времени занимает выполнение участка кода. Можно сделать это без дополнительных библиотек. 🎯 Итог Используйте time.perf_counter() для точного измерения времени выполнения кода — он лучше подходит для микробенчмарков, чем time.time().
🧠 Измеряем время выполнения кода с помощью contextmanager Чтобы быстро измерить производительность участка кода, можно создать простой контекстный менеджер. 🎯 Итог Контекстный менеджер делает измерение времени элегантным и удобным — особенно при профилировании кода.
🧵 Параллельное выполнение задач с ThreadPoolExecutor Если нужно ускорить выполнение нескольких независимых операций (например, сетевых запросов или чтения файлов) — можно использовать потоки из concurrent.futures. 🎯 Итог ThreadPoolExecutor позволяет легко запускать несколько задач одновременно, экономя время на операциях ввода-вывода.
⚙️ Использование contextlib.suppress для игнорирования ошибок Иногда нужно выполнить код, который может упасть, но ошибка при этом не критична. Вместо громоздкого try/except, можно изящно подавить исключения! 🎯 Итог Используй contextlib.suppress для безопасного выполнения кода, где ошибка не требует обработки. Это делает код компактнее и чище.