Python School
82.9K subscribers
2.38K photos
7 videos
558 links
Уроки по Python, которые упростят вам жизнь. Без идиотских туториалов.

Наши мемы для программистов: @conhum

Сотрудничество - @alivian

Канал сотрудничает с рекламным сервисом @Tgpodbor_official

РКН: clck.ru/3G6pBb
加入频道
Используйте функцию enumerate для перебора элементов списка и их индексов

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

Когда нужно завершать долгие операции (например, при парсинге или работе с API), полезно уметь ставить таймаут на блок кода.

🎯 Итог
Модуль signal позволяет элегантно ограничивать время выполнения операций. Особенно полезен при работе с нестабильными внешними источниками или написании защищённых CLI-утилит. Работает только в UNIX-системах.
🧊 Глубокая заморозка объектов с types.MappingProxyType

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

🎯 Итог
MappingProxyType создаёт читаемую, но неизменяемую обёртку над словарём — отличный способ защитить данные от случайного изменения, особенно в конфигурациях и API-интерфейсах.
⚙️ Быстрое измерение времени выполнения кода с timeit

Иногда нужно узнать, какой из вариантов реализации работает быстрее. Модуль timeit поможет провести чистое и честное измерение без внешнего шума.

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

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

Без кэширования fibonacci(100) был бы крайне медленным из-за экспоненциальной сложности. С lru_cache результат каждого вызова сохраняется и переиспользуется.

🎯 Итог
@lru_cache — простой способ ускорить рекурсивные (и не только) функции, избежав повторных вычислений.
⏱️ Замер времени выполнения кода с timeit

Иногда нужно быстро понять, насколько эффективно работает участок кода. Вместо ручного замера времени можно использовать модуль timeit, который делает это корректно и точно.

timeit учитывает накладные расходы, прогрев интерпретатора и выполняет код в изолированной среде, что делает его отличным инструментом для микробенчмарков.

🎯 Итог
timeit — отличный способ сравнивать производительность разных решений и выбирать самое быстрое.
This media is not supported in your browser
VIEW IN TELEGRAM
7–8 июня проводим Weekend Offer Analytics

Устроиться в Яндекс за выходные — реально. Ищем крутых аналитиков с опытом работы от 3 лет на Python, готовых работать в офисном или гибридном режиме.

Подавайте заявку до 3 июня — и всего за 2 дня пройдите технические собеседования. После сможете пообщаться с двенадцатью нанимающими командами и выбрать ту, которая покажется самой интересной. Если всё сложится хорошо, сразу же пришлём вам офер.

Узнать подробности и зарегистрироваться.

Реклама. ООО "Яндекс". ИНН 7736207543
✉️ Распаковка аргументов с * и ** — элегантная передача параметров

Иногда нужно передать переменное количество аргументов в функцию или вызвать функцию с уже готовыми аргументами в виде кортежа или словаря. Python позволяет делать это красиво с помощью *args и **kwargs.

Это особенно удобно, если вы оборачиваете функции, строите декораторы или работаете с конфигами.

🎯 Итог
Использование * и ** позволяет гибко управлять аргументами и упрощает передачу данных в функции — лаконично и читаемо.
Какой у тебя склад ума: аналитик или творец?

Всего 10 вопросов — и ты узнаешь, в каком направлении сможешь раскрыть свой потенциал. А еще получишь подарок от Eduson — академии, которую выбирают топ-компании и 450 000+ студентов.

После теста мы пришлем:
— Персональный результат с разбором твоих сильных сторон.
— Промокод на обучение — если захочешь глубже прокачать навыки.

Кстати, в Eduson учат не только теории: там разбирают кейсы из Google, Яндекса и даже Гарварда. Но для начала — просто попробуй тест. Это интересно 😉

👉 Узнай себя лучше → Пройти тест
⏱️ Тайминг кода без сторонних библиотек

Нужно быстро узнать, сколько времени занимает выполнение участка кода? Воспользуйтесь встроенным модулем time.

time.perf_counter() предоставляет наиболее точные замеры времени исполнения — идеально для бенчмаркинга.

🎯 Итог
С помощью time.perf_counter() можно легко измерять производительность кода без внешних зависимостей.
Mini-MBA по интернет-маркетингу — 6 уроков БЕСПЛАТНО!

Бесплатный курс премиум-качества по интернет-маркетингу — 6 уроков, 5,5 часов практики, доступ навсегда.

Научитесь запускать рекламу, продвигать стартапы и упаковывать бизнес так, чтобы клиенты сами шли к вам. Без воды, только рабочие схемы.

Это часть дипломной программы (64 практических задания, 4 месяца обучения), но прямо сейчас — ваш шанс оценить её без оплаты.

Забирайте 5,5 часов практики по ссылке.
Только 48 часов на решение
🧠 Получение имени переменной как строки

В некоторых ситуациях, особенно при логировании или отладке, бывает удобно получить имя переменной как строку. В Python это можно сделать через модуль inspect.

Функция var_name смотрит в локальные переменные вызывающей функции и ищет переменную, значение которой совпадает с переданным объектом.

🎯 Итог
Этот способ позволяет получить имя переменной во время выполнения, что может быть полезно при отладке, логировании или автогенерации сообщений.
Зарплата до ₽900 тыс. на руки: на каких дата-специалистов сейчас высокий спрос

Сегодня практически любой бизнес не может работать без сбора, обработки, анализа данных — всё это подвиды задач Data Scientist. Чем крупнее компания, тем сильнее различаются задачи, стоящие перед этими специалистами, а также заработная плата.

С целью удовлетворить растущий мировой спрос на этих специалистов онлайн-университет Skillfactory создал бесплатный "мини-курс дата-сайентист". Он нацелен на обучение начинающих специалистов в кратчайшие сроки.

Попробовать мини-курс, и выйти на стартовый доход 100 тыс.руб.

Реклама. Информация о рекламодателе по ссылкам в посте.
🚀 Быстрое сравнение версий как в pip

Когда нужно сравнить версии вроде '1.2.10' и '1.2.3', строковое сравнение не работает как надо. Но Python умеет это элегантно через packaging.version.

Библиотека packaging знает, как правильно сравнивать версии, в том числе с alpha, beta, rc и прочими дополнениями. Она используется, например, в pip.

🎯 Итог
packaging.version.parse — надёжный способ сравнивать версии, как это делает Python Package Index. Удобно для проверок в CLI, апдейтах и условиях совместимости.
Мечтаете о работе из любой точки мира с высокой зарплатой, но боитесь сложностей? Тогда читайте это пост.

Мы нашли комфортную в освоении IT-профессию, с адекватным доходом и востребованностью среди работодателей на ближайшие 20 лет.

Разработчик на Python — идеальный старт!
✔️ Легче, чем Java — минимум «магии» в коде.
✔️Более востребован, чем JavaScript — 3900+ вакансий прямо сейчас.
✔️Универсальнее, чем Excel — от чат-ботов до нейросетей.

Пройдите тест за две минуты, чтобы понять, подходит ли вам профессия → получите доступ мини-курсу → соберите портфолио из сильных проектов.

👉 Сделайте первый шаг к профессии Python-разработчика — пройдите тест и заберите подборку из четырех статей для комфортного старта в подарок.

Реклама. Информация о рекламодателе по ссылкам в посте.
🧊 Словарь с "молчаливыми" значениями — defaultdict

Когда работаешь со словарём, часто нужно сначала проверять, есть ли ключ. С defaultdict от collections это делается автоматически.

🎯 Итог
defaultdict избавляет от лишних проверок и упрощает код, особенно когда нужно агрегировать или группировать данные.
Бесплатный мини-курс: освой базу тестирования за 72 часа

Ты выполнишь 3 реальных задачи из жизни Junior QA — поиски багов вручную, и с помощью ПО. Получишь проекты в портфолио, значимые для будущего работодателя.

Как это работает?
1. Регистрируешься — это абсолютно бесплатно.
2. В течение трёх дней проходишь уроки от эксперта в удобное для себя время.
3. Получаешь консультацию по профессии, обучению и рынку.
4. Понимаешь, подходит ли тебе тестирование, как начать карьеру и как выгодно выделиться среди новичков.

Получи 4 гайда + 3 проекта в портфолио за 3 дня — успевай до 31 мая!
👉 Записаться бесплатно (осталось 12 мест).
🧪 Проверка аргументов функций — assert как мини-валидация

Иногда нужно быстро проверить корректность аргументов функции. Можно использовать assert для встроенной валидации прямо в начале.

🎯 Итог
assert — быстрый способ «подстелить соломку» и отлавливать очевидные ошибки ещё до выполнения основного тела функции. Особенно полезно в прототипах и тестах.
Узнай подходящую тебе карьеру за 5 минут.

Онлайн-школа участник проекта "Сколково" создала уникальный инструмент профориентации, который раскроет ваш потенциал. Простой тест с вариантами ответа, менее чем из 20 вопросов.

В конечный результат вошли только самые востребованные профессии для 2025 года, большинство специальностей из сферы IT и Дизайна, именно в них на сегодня наибольшие доходы.

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

Реклама. Информация о рекламодателе по ссылкам в посте.
🧵 Ускорение кода с помощью functools.cache

Когда функция вызывается часто с одними и теми же аргументами (например, при рекурсии), можно использовать кэширование результатов с помощью декоратора @cache.

🎯 Итог
@cache (или @lru_cache) позволяет многократно ускорить повторяющиеся вычисления без изменения логики — просто добавь декоратор.