Python Academy
10.7K subscribers
505 photos
75 videos
584 links
🐍 Прокачайте свои навыки в Python без лишних слов и бубна. Нет туториалов - только чистый код!
Download Telegram
🧪 Проверка типов во время разработки с typing.assert_type

Иногда полезно явно указать ожидаемый тип переменной — особенно при сложных аннотациях или когда IDE не даёт точной подсказки. Python 3.11+ предоставляет утилиту typing.assert_type для таких целей.

Во время выполнения assert_type не делает ничего — он нужен только для анализа типизации инструментами, как mypy или Pyright.

🎯 Итог
assert_type помогает быть уверенным, что типы совпадают с ожиданиями, и делает код более безопасным без влияния на производительность.

Python Academy
🤩10👎2👏2🤗2
🧵 Ускорение многозадачности с concurrent.futures.ThreadPoolExecutor

Когда тебе нужно выполнить несколько I/O-зависимых задач (например, запросы к API или чтение файлов), но ты не хочешь возиться с asyncio, можно использовать ThreadPoolExecutor — просто и эффективно.

🎯 Итог
ThreadPoolExecutor — мощный способ ускорить I/O-операции с минимальными усилиями. Особенно удобен, если не хочется переписывать проект под asyncio.

Python Academy
👏9🔥7🤗5🎉3
🧼 Удаление дубликатов из вложенных списков

Иногда нужно удалить дубликаты из списка списков — но set тут не работает напрямую, ведь списки — неизменяемые. Есть простое решение!

🎯 Итог
Для удаления дубликатов из списка списков — конвертируй во tuple, используй set, потом верни всё обратно. Быстро и без лишних циклов.

Python Academy
😁8🤗7🤩32
🧪 Быстрая проверка скорости кода с timeit

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

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

Python Academy
👏12
🧼 Чистое логирование без print — используй logging

Вместо print() лучше сразу привыкай к модулю logging — он гибкий и профессиональный.

🎯 Итог
Модуль logging — must-have для любого серьезного Python-кода. Он делает отладку и сопровождение кода намного приятнее и чище.

Python Academy
😁9👍7🤩1
🧠 Проверка типов во время разработки — mypy

Пайтон — динамический язык, но ты можешь использовать статическую проверку типов с помощью mypy для улавливания ошибок до запуска кода.

🎯 Итог
mypy помогает ловить ошибки типов на раннем этапе и делает твой код надежнее. Особенно полезен в больших проектах с командами.

Python Academy
🔥82👏1
🪄 Ускорение сериализации с orjson

Обычный json модуль в Python медленный. Если тебе нужно быстро сериализовать/десериализовать данные — используй orjson, он в разы быстрее и поддерживает datetime из коробки.

🎯 Итог
orjson — отличный выбор, если тебе важна производительность при работе с JSON. Он быстрее стандартного модуля и проще в использовании.

Python Academy
😁14
🗺 В Нижегородской области зарегистрировано более 132 000 МСП. Наиболее конкурентные сферы региона — торговля, рестораны и услуги.

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

Так, по данным Яндекса, 63% людей изучают информацию в интернете перед покупкой, почти 1/3 пользователей Яндекс Карт заходят в приложение ежедневно, 2/3 - несколько раз в неделю.

С помощью карточки компании и работы с отзывами начинающие предприниматели могут выстроить доверие с клиентами. А еще понять, что востребовано ими в конкретных локациях через Геоаналитику. Так, например, Речной вокзал — в топе по запросам на рестораны и бары.

Об особенностях использования геосервисов нижегородцами для бизнеса пишет Артём Савинов, руководитель проектов в Яндекс Картах.

Python Academy
🔥12
Объединение списка строк в одну строку

Метод .join() объединяет элементы списка в одну строку, используя заданный разделитель (в примере — пробел " ").
Плюсы: Быстрее и эффективнее, чем перебор в цикле Гибкость: можно выбрать любой разделитель (например, ",".join() для CSV)
Осторожно: Все элементы списка должны быть строками, иначе будет ошибка.

Python Academy
7
🧼 Безопасное удаление ключа из словаря

Обычно при удалении ключа из словаря с del можно случайно получить KeyError, если ключа нет. А вот dict.pop() с дефолтным значением — безопаснее и удобнее!

🎯 Итог
Используй dict.pop(key, default) — безопасный способ удалить ключ и получить значение, если оно нужно. Уберегаешься от KeyError и пишешь устойчивый код.

Python Academy
👍13
🧊 Безопасное извлечение значений из словаря

Иногда нужно получить значение из словаря, но ключ может отсутствовать. Вместо лишних if — используй .get() с дефолтным значением.

🎯 Итог
Метод .get() делает код чище и безопаснее, особенно при работе с необязательными данными.

Python Academy
🤩42🤗2🎉1
🛑 Прерывание цикла for с else

Мало кто знает, но for и while в Python могут иметь else. Этот else сработает только если цикл не был прерван через break. Удобно, когда нужно узнать, завершился ли цикл «естественно».

🎯 Итог
Конструкция for/else помогает элегантно отличить «успешный» проход по циклу от прерывания. Полезно при поиске, проверках и валидации!

Python Academy
🎉7
🧊 setdefault() для упрощения работы со словарями

Иногда нужно добавлять значения в словарь списков. Можно проверять наличие ключа вручную, а можно использовать setdefault().

🎯 Итог
Метод setdefault() избавляет от лишней проверки ключей и помогает лаконично группировать данные в словарях.

Python Academy
😁6🤩5🤗21
🐍 Как элегантно "перевернуть" словарь

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

🎯 Итог
Инвертирование словаря — это просто и читаемо с генератором. Но помни: значения должны быть уникальны и хэшируемы, чтобы не потерять данные!

Python Academy
🤗6
Использование list comprehension для фильтрации и преобразования данных

List comprehension в Python предоставляет лаконичный способ создания списков, позволяя не только итерировать, но и фильтровать и преобразовывать данные в одной строке. Это улучшает читаемость кода и уменьшает его объем.

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

Python Academy
👏3🎉31🤗1
🧭 **Как задать тайм-аут для любой функции**

Иногда нужно ограничить время выполнения функции, особенно если она может "зависнуть". Для этого можно использовать concurrent.futures и ThreadPoolExecutor.

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

Python Academy
😁5🔥2
**👀 Подсмотреть, как работают бэкендеры в прямом эфире**

5 июля пройдет Яндекс 2718 — разбор сложных архитектурных задач с участием топовых разработчиков Яндекса.

Как это работает:
— участники предлагают задачи по проектированию backend-сервисов;
— эксперты выбирают самые интересные и нетривиальные кейсы;
— разработчики из Карт, Поиска, Автономного транспорта и Рекламы решают их в прямом эфире.

Чтобы попасть на эфир нужно посмотреть требования к задачам и отправить свою. Авторы принятых вариантов получат приглашение приехать на эфир лично или подключиться онлайн. А еще можно зарегистрироваться и прийти на трансляцию за вдохновением. Все о задачах и регистрации — [здесь.](https://cutt.ly/8rWN2n5B)

Python Academy
3👍3
**Использование defaultdict для работы со словарями**

При работе со словарями часто возникает необходимость инициализировать значения по умолчанию, чтобы избежать ошибок при попытке доступа к несуществующим ключам. В таких случаях полезно использовать defaultdict из модуля collections.

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

Python Academy
9🤗4🤩2
🧼 Удаление дубликатов, сохраняя порядок

Стандартный set() удаляет дубликаты, но не сохраняет порядок. Чтобы сохранить порядок элементов, можно использовать dict.fromkeys().

🎯 Итог
dict.fromkeys() — простой и читаемый способ удалить дубликаты из списка, сохранив порядок появления. Работает быстро и не требует сторонних библиотек.

Python Academy
👍7😁6🤗5
🔁 Повтор последнего результата в Python REPL

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

🎯 Итог
Символ
в интерактивной консоли Python хранит результат последнего выражения — удобно для быстрых вычислений и экспериментов без создания переменных.

Python Academy
👍95🔥2