Python обучающий
61.6K subscribers
824 photos
8 videos
414 links
Здесь есть всё, чтобы упростить изучение Python. Без воды и сложных терминов.

Сотрудничество: @bateman24, @justcage

Работаем с @Tgpodbor_official

Ссылка РНК: https://clck.ru/3Ghwjd
Download Telegram
Используем контекстный менеджер для безопасной работы с БД

Многие новички забывают закрывать соединения с базой данных, что может привести к утечкам ресурсов и блокировкам. Контекстный менеджер (with) упрощает работу с базой и автоматически закрывает соединение даже при ошибках.

🎯 Итог
Используй with при работе с базой данных — это гарантирует автоматическое закрытие соединения и делает код надёжнее и чище.
⚙️ Использование __slots__ для экономии памяти

По умолчанию Python хранит атрибуты объектов в словаре (__dict__), что удобно, но затратно по памяти. Если вы создаёте множество однотипных объектов, можно использовать slots, чтобы ограничить список допустимых атрибутов и сократить потребление памяти.
🧠 Умное логгирование исключений с exc_info=True

Когда ловишь исключение и хочешь залоггировать стек, многие забывают важный параметр.

🎯 Итог
Добавляй exc_info=True к логгированию исключений — получишь полный стек и не потеряешь важные детали при отладке.
🧠 Переопределение стандартного поведения функций через декоратор

Иногда хочется обернуть функцию, чтобы автоматически логировать её вызов или измерять время исполнения. Это удобно делать через декоратор.

🎯 Итог
Декораторы позволяют добавлять поведение к функциям, не изменяя их напрямую. Это мощный инструмент для логирования, кэширования, авторизации и прочих нужд.
🗂 Быстрое создание вложенных словарей с defaultdict

Если ты работаешь с вложенными структурами типа dict of dict, можно избавиться от лишних проверок на наличие ключей, используя collections.defaultdict.

📌 Это особенно удобно при подсчёте данных или построении динамических структур.

🎯 Итог
С помощью defaultdict можно упростить работу с вложенными словарями и избежать лишней проверки наличия ключей. Идеально подходит для счётчиков и агрегаций.
🧹 Удаление дубликатов при сохранении порядка

Обычно set() убирает дубликаты, но не сохраняет порядок.

dict.fromkeys() создаёт словарь, где ключи — элементы списка (они уникальны), и при этом сохраняет порядок добавления (с Python 3.7+).

🎯 Итог
Чтобы быстро убрать дубликаты и сохранить порядок, используй list(dict.fromkeys(...)). Эффективно и элегантно.
🧵 Распаковка словаря в аргументы функции

Иногда нужно передать значения из словаря в функцию — можно сделать это красиво и лаконично.

**data автоматически распакует ключи словаря как имена аргументов, а значения — как аргументы функции.

🎯 Итог
Когда у тебя есть словарь с нужными данными, не передавай каждый параметр вручную — просто используй **. Это сокращает код и повышает читаемость.
🪄 Получение имени текущей функции: inspect.currentframe()

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

🎯 Итог
С помощью inspect.currentframe().f_code.co_name можно динамически получить имя текущей функции. Отлично подходит для логирования и отладки.
Есть такое выражение — «жертва маркетинга». Это когда ты понимаешь, что Лабубу — всего лишь никчемная игрушка (но ей забит уже весь гардероб), а вся фишка розового бургера в том — что он тупо розовый (но булочек больше нет)

Так вот, если вы часто ловите себя на мысли, что уже не понимаете — как бренды превращают вас в зависимых, загляните на канал пакет с пакетами

Там маркетологи со всей России смеются над «гениальными» решениями брендов: от чипсов со вкусом пива до Залупиццы, делятся запретными техниками продаж и публикуют рекламу, которую хочется пересматривать

Пожалуй, это лучший канал про гениев пиара. Подписывайтесь, вот ссылка: клиик
🧵 🖇️ Объединение итерируемых объектов с itertools.chain

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

🎯 Итог
itertools.chain позволяет объединять итерируемые объекты "на лету" без лишнего потребления памяти. Полезно для работы с большими наборами данных.
В телеграме появился сервис, который сделает за вас перевод в любую точку мира и быстро и безопасно обменяют валюту.

С ним вы сможете проводить международные транзакции, оплачивать инвойсы и путешествовать без заморочек с местной валютой

Пожалуй, это самый полезный сервис в 2025 году: https://t.iss.one/+CVopi9sZVG0yZGFi
📌 🔄 Клонирование объекта без copy через dataclasses.replace

Если вы работаете с dataclass и хотите создать копию объекта, изменив лишь пару полей, то можно использовать dataclasses.replace. Это удобнее и чище, чем вручную копировать все значения.

🎯 Итог
replace из dataclasses — быстрый способ клонировать объект с изменением выбранных атрибутов.
Бывший пиарщик Бургер Кинг и Пепси-колы Артем Никандров завел канал, где открыто показывает внутрянку крупных брендов и шутит про русский бизнес.

Еще он на пальцах объясняет, почему все соцсети в 2025 году — это маркетплейсы, почему мы все подсели на Вайлдбериз, и как доставка стала новой нормой. И всё это с цифрами, личными комментариями, ну и мемами, конечно.

Короче Поддержите Артема подпиской — видно, что чувак шарит: клиик
📌 🕵️‍♂️ Автоматический лог SQL-запросов в SQLAlchemy

При отладке удобно видеть, какие именно запросы уходит в базу. В SQLAlchemy это можно включить одной строкой при создании engine.

🎯 Итог
Флаг echo=True в create_engine позволяет мгновенно включить логирование SQL-запросов без дополнительных инструментов.
На SourceCraft стартовал конкурс репозиториев и прием заявок на грантовую программу. Разработчики могут перенести свои проекты, собрать оценки сообщества и побороться за поддержку. Лучшие работы будут опубликованы в официальном канале, а авторы получат фирменный мерч.

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

Платформа помогает сократить путь от идеи до релиза: код, тесты, сборка и выкатывание продукта делаются быстрее и удобнее прямо в SourceCraft.

Информация об организаторе Акции, о правилах проведения Акции, количестве призов, сроках, месте и порядке их получения размещена по ссылке.
📌 Автоматическая метка времени при добавлении записей в БД

Чтобы не писать вручную дату создания и обновления записи, можно задать их прямо в модели SQLAlchemy.

🎯 Итог

Использование server_default=func.now() и onupdate=func.now() автоматизирует работу с датами в таблицах и избавляет от рутины.
🚀 🧑🏻‍💻 Пора пушнуть свою IT-карьеру: стартовала регистрация на самый крупный онлайн-хакатон для спецов со всей России и мира!

40 млн призового фонда уже ждут:
⚡️1 место — 1 млн рублей
⚡️2 место — 600 тысяч рублей
⚡️3 место — 400 тысяч рублей

💼 Разрабатывайте решения для топовых компаний и столичных сервисов

Среди задач:
👉🏻 Система автопилота городского робота уборщика
👉🏻 ИИ-модель для автоматизации приёма и выдачи инструментов
👉🏻 Сервис для выявления компьютерных томографий органов грудной клетки без патологий
👉🏻 Система рекомендаций по оптимизации производительности Data Lakehouse
и еще много других

Среди постановщиков задач Правительство Москвы и ведущие компании: Газпромбанк.Тех, VK Tech, Kaspersky, АФЛТ-Системс (Группа «Аэрофлот»), Союзмультфильм, Авито, Итэлма, ОЭЗ «Алабуга».

📅Регистрация открыта до 18 сентября!

👥Принять участие могут IT-специалисты из России и зарубежа от 18 лет.
Регистрация и подробности — по ссылке ➡️ https://i.moscow/lct?utm_source=sp&utm_medium=social&utm_campaign=pythonist24/?erid=2VtzqvtYrpb

📲 А за актуальными новостями по хакатону — ждём на нашем канале
Быстрое создание словаря с уникальными элементами

Проблема: Часто нужно превратить список в словарь, где ключи — элементы списка, а значения — например, их длина или частота. Обычно для этого пишут циклы, что занимает место и время.

Используем dict comprehension вместе с set или enumerate для быстрой генерации словаря без лишних циклов.

🎯 Итог:
dict comprehension позволяет создавать словари в одну строку.
set помогает получить уникальные элементы.
enumerate позволяет учитывать порядок без дополнительных циклов.
This media is not supported in your browser
VIEW IN TELEGRAM
Пожалуйста, начните следить за питанием

Сегодня 73% людей всю жизнь ходят с сухой кожей, морщинами и болями в животе. А после удивляются, что причиной всего этого является рацион питания.

Всем им стоит начать с подписки на канал. Там Доктор Лиза простым языком объясняет:

↳ Какие продукты позволят сбросить 10 кг за 4 недели без тренировок и голодания
↳ Что поможет в 35 выглядеть на все 18
↳ Как выздороветь от простуды за 1 день
↳ Какой экстракт трав убивает раковые клетки
↳ Как избавиться от головной боли раз и навсегда

Осторожно! Подписка на канал продлит вам жизнь — @doktorliza
🕵️‍♂️ Безопасное получение значения из словаря

При обращении к несуществующему ключу в словаре возникает KeyError. Чтобы этого избежать, часто пишут проверки if key in dict. Это громоздко.

Используй метод .get() с дефолтным значением. Он сразу вернёт либо значение по ключу, либо запасное, если ключа нет.