ar
Feedback
Python Academy

Python Academy

الذهاب إلى القناة على Telegram

🐍 Прокачайте свои навыки в Python без лишних слов и бубна. Нет туториалов - только чистый код!

إظهار المزيد
2 504
المشتركون
+524 ساعات
-247 أيام
-7430 أيام
أرشيف المشاركات
🧊 Словарь с "молчаливыми" значениями — defaultdict Когда работаешь со словарём, часто нужно сначала проверять, есть ли ключ.
🧊 Словарь с "молчаливыми" значениями — defaultdict Когда работаешь со словарём, часто нужно сначала проверять, есть ли ключ. С defaultdict от collections это делается автоматически. 🎯 Итог defaultdict избавляет от лишних проверок и упрощает код, особенно когда нужно агрегировать или группировать данные. Python Academy

🚀 Быстрое сравнение версий как в pip Когда нужно сравнить версии вроде '1.2.10' и '1.2.3', строковое сравнение не работает к
🚀 Быстрое сравнение версий как в pip Когда нужно сравнить версии вроде '1.2.10' и '1.2.3', строковое сравнение не работает как надо. Но Python умеет это элегантно через packaging.version. Библиотека packaging знает, как правильно сравнивать версии, в том числе с alpha, beta, rc и прочими дополнениями. Она используется, например, в pip. 🎯 Итог packaging.version.parse — надёжный способ сравнивать версии, как это делает Python Package Index. Удобно для проверок в CLI, апдейтах и условиях совместимости. Python Academy

🧠 Получение имени переменной как строки В некоторых ситуациях, особенно при логировании или отладке, бывает удобно получить
🧠 Получение имени переменной как строки В некоторых ситуациях, особенно при логировании или отладке, бывает удобно получить имя переменной как строку. В Python это можно сделать через модуль inspect. Функция var_name смотрит в локальные переменные вызывающей функции и ищет переменную, значение которой совпадает с переданным объектом. 🎯 Итог Этот способ позволяет получить имя переменной во время выполнения, что может быть полезно при отладке, логировании или автогенерации сообщений. Python Academy

⏱️ Тайминг кода без сторонних библиотек Нужно быстро узнать, сколько времени занимает выполнение участка кода? Воспользуйтесь
⏱️ Тайминг кода без сторонних библиотек Нужно быстро узнать, сколько времени занимает выполнение участка кода? Воспользуйтесь встроенным модулем time. time.perf_counter() предоставляет наиболее точные замеры времени исполнения — идеально для бенчмаркинга. 🎯 Итог С помощью time.perf_counter() можно легко измерять производительность кода без внешних зависимостей. Python Academy

✉️ Распаковка аргументов с * и — элегантная передача параметров Иногда нужно передать переменное количество аргументов в функ
✉️ Распаковка аргументов с * и — элегантная передача параметров Иногда нужно передать переменное количество аргументов в функцию или вызвать функцию с уже готовыми аргументами в виде кортежа или словаря. Python позволяет делать это красиво с помощью *args и kwargs. Это особенно удобно, если вы оборачиваете функции, строите декораторы или работаете с конфигами. 🎯 Итог Использование * и ** позволяет гибко управлять аргументами и упрощает передачу данных в функции — лаконично и читаемо. Python Academy

⏱️ Замер времени выполнения кода с timeit Иногда нужно быстро понять, насколько эффективно работает участок кода. Вместо ручн
⏱️ Замер времени выполнения кода с timeit Иногда нужно быстро понять, насколько эффективно работает участок кода. Вместо ручного замера времени можно использовать модуль timeit, который делает это корректно и точно. timeit учитывает накладные расходы, прогрев интерпретатора и выполняет код в изолированной среде, что делает его отличным инструментом для микробенчмарков. 🎯 Итог timeit — отличный способ сравнивать производительность разных решений и выбирать самое быстрое. Python Academy

⚙️ Быстрое измерение времени выполнения кода с timeit Иногда нужно узнать, какой из вариантов реализации работает быстрее. Мо
⚙️ Быстрое измерение времени выполнения кода с timeit Иногда нужно узнать, какой из вариантов реализации работает быстрее. Модуль timeit поможет провести чистое и честное измерение без внешнего шума. 🎯 Итог timeit — отличный способ понять, какой участок кода быстрее работает на практике. Особенно полезен при оптимизации функций или выборе между несколькими подходами. Python Academy

🧠 Кэширование с functools.lru_cache Если у вас есть функция, результат которой зависит только от входных параметров и вызыва
🧠 Кэширование с functools.lru_cache Если у вас есть функция, результат которой зависит только от входных параметров и вызывается часто с одними и теми же аргументами — её можно ускорить с помощью мемоизации. Без кэширования fibonacci(100) был бы крайне медленным из-за экспоненциальной сложности. С lru_cache результат каждого вызова сохраняется и переиспользуется. 🎯 Итог @lru_cache — простой способ ускорить рекурсивные (и не только) функции, избежав повторных вычислений. Python Academy

🧊 Глубокая заморозка объектов с types.MappingProxyType Иногда нужно создать словарь, который нельзя изменить — например, для
🧊 Глубокая заморозка объектов с types.MappingProxyType Иногда нужно создать словарь, который нельзя изменить — например, для констант или конфигурации. Вместо копирования или заморозки вручную, можно использовать MappingProxyType. 🎯 Итог MappingProxyType создаёт читаемую, но неизменяемую обёртку над словарём — отличный способ защитить данные от случайного изменения, особенно в конфигурациях и API-интерфейсах. Python Academy

⏳ Ограничение времени выполнения кода с signal Когда нужно завершать долгие операции (например, при парсинге или работе с API
Ограничение времени выполнения кода с signal Когда нужно завершать долгие операции (например, при парсинге или работе с API), полезно уметь ставить таймаут на блок кода. 🎯 Итог Модуль signal позволяет элегантно ограничивать время выполнения операций. Особенно полезен при работе с нестабильными внешними источниками или написании защищённых CLI-утилит. Работает только в UNIX-системах. Python Academy

⚡ Быстрая проверка уникальности элементов в списке Иногда нужно понять, все ли элементы в списке уникальны. Можно обойтись бе
⚡ Быстрая проверка уникальности элементов в списке Иногда нужно понять, все ли элементы в списке уникальны. Можно обойтись без циклов и лишней логики. 🎯 Итог Преобразование списка во множество — быстрый способ проверить уникальность: set автоматически убирает дубликаты. Особенно полезно при валидации данных. Python Academy

Используйте функцию enumerate для перебора элементов списка и их индексов enumerate - это встроенная функция, которая принима
Используйте функцию enumerate для перебора элементов списка и их индексов enumerate - это встроенная функция, которая принимает список и возвращает объект, который можно использовать в цикле for для перебора элементов списка и их соответствующих индексов. Python Academy

🧩 Как элегантно объединять словари с приоритетом значений Часто нужно объединить два словаря, где значения из второго имеют
🧩 Как элегантно объединять словари с приоритетом значений Часто нужно объединить два словаря, где значения из второго имеют приоритет. Это можно сделать просто и читаемо. 🎯 Итог Синтаксис {dict1, dict2} объединяет словари, давая приоритет второму. Удобен для настройки конфигураций, параметров и всего, что связано с override'ами. Python Academy

Использование itertools() Модуль itertools содержит много полезных функций для работы со списками. Например, функция combinat
Использование itertools() Модуль itertools содержит много полезных функций для работы со списками. Например, функция combinations() позволяет получить все комбинации элементов списка заданной длины. В этом примере мы используем функцию combinations(). Из модуля itertools для получения всех комбинаций из двух элементов списка numbers. Python Academy

⏱️ Как замерить время выполнения кода элегантно Иногда нужно узнать, сколько времени занял блок кода — для отладки, оптимизац
⏱️ Как замерить время выполнения кода элегантно Иногда нужно узнать, сколько времени занял блок кода — для отладки, оптимизации или просто интереса. Вместо громоздких решений можно использовать контекстный менеджер. 🎯 Итог Контекстный менеджер timeit позволяет быстро замерять производительность без лишнего шума. Особенно полезен при профилировании отдельных участков кода. Python Academy

⛓️ Как объединять цепочки условий красиво и читаемо Иногда логика с множеством if становится громоздкой. В таких случаях удоб
⛓️ Как объединять цепочки условий красиво и читаемо Иногда логика с множеством if становится громоздкой. В таких случаях удобно использовать словарь как аналог switch-case. 🎯 Итог Словарь заменяет кучу if-elif-else, делает код чище и облегчает добавление новых случаев. Особенно полезно, когда условия связаны с конкретными значениями (например, кодами, командами или ролями). Python Academy

🔁 Как один раз инициализировать ресурс при первом использовании Допустим, у тебя есть тяжёлая операция (например, подключени
🔁 Как один раз инициализировать ресурс при первом использовании Допустим, у тебя есть тяжёлая операция (например, подключение к БД, загрузка модели и т.д.), которую нужно выполнить только один раз при первом вызове. Для этого идеально подходит functools.lru_cache. 🎯 Итог @lru_cache — простой способ ленивой инициализации: функция выполнится один раз, а результат будет использоваться повторно. Идеально для кэширования настроек, соединений и других «разовых» данных. Python Academy

⏱️ Как быстро измерить время выполнения кода Иногда нужно понять, сколько времени занимает выполнение куска кода. В боевых ус
⏱️ Как быстро измерить время выполнения кода Иногда нужно понять, сколько времени занимает выполнение куска кода. В боевых условиях используют logging и профилировщики, но для быстрой отладки есть простой лайфхак с time.perf_counter(). 🎯 Итог time.perf_counter() — точный и удобный способ измерить время выполнения кода. Используй для быстрой диагностики производительности прямо в процессе разработки. Python Academy

🧵 Упрощаем цепочки if с помощью match-case Иногда при проверке значения переменной мы пишем длинную цепочку if-elif-else. Эт
🧵 Упрощаем цепочки if с помощью match-case Иногда при проверке значения переменной мы пишем длинную цепочку if-elif-else. Это выглядит громоздко и сложно читается. С Python 3.10 можно использовать конструкцию match-case, которая делает код компактнее и читабельнее — особенно при работе со строками, числом или даже структурами данных. 🎯 Итог match-case — это элегантная альтернатива if-elif-else в Python 3.10+. Подходит для ветвлений по значениям, в том числе с распаковкой. Пиши чище, читай легче! Python Academy

Массовая вставка данных без цикла Вставлять много записей по одной — неэффективно. Лучше использовать метод executemany, кото
Массовая вставка данных без цикла Вставлять много записей по одной — неэффективно. Лучше использовать метод executemany, который сразу выполнит множество вставок за один запрос. 🎯 Итог executemany позволяет вставлять или обновлять множество записей за один запрос, экономя время и ресурсы. Python Academy