Python Academy
10.7K subscribers
505 photos
74 videos
583 links
🐍 Прокачайте свои навыки в Python без лишних слов и бубна. Нет туториалов - только чистый код!
Download Telegram
🧪** Проверка типов переменной с помощью typing.get_origin и typing.get_args
**
Когда ты работаешь с аннотациями типов (особенно с Union, List[int], Optional[str] и т.п.), стандартной проверки isinstance() недостаточно.

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

🎯 Итог
С помощью get_origin и get_args ты можешь "распаковать" сложные типы и точно понимать, что за структура стоит за аннотацией. Очень полезно при создании универсальных функций или фреймворков.

Python Academy
👍4👏2😁2🤩1
Мир создают те, кто решается — станьте творцом.

Графический дизайн — не про «рисовать». Это про то, как бизнесы общаются с миром через визуал. Это про стиль, ассоциации, характер бренда. И вы можете быть тем, кто это создаёт.

Попробуйте себя в дизайне — без вложений, без риска. За 3 дня вы освоите Illustrator и Photoshop, соберёте концепт бренда и оформите свой первый кейс для портфолио.

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

Python Academy
🤗6👏42🔥2😁1
🧵 🧠 Оптимизация многопоточности с concurrent.futures.ThreadPoolExecutor

Иногда нужно быстро запустить несколько задач параллельно, особенно для I/O-операций. Вместо ручной работы с threading, можно использовать ThreadPoolExecutor — простой и читаемый способ.

Этот код запускает задачи в отдельных потоках, используя пул. Отличный способ распараллелить I/O (запросы, чтение файлов и т.п.).

🎯 Итог
ThreadPoolExecutor — лаконичный и мощный инструмент для многопоточности, особенно когда надо быстро распараллелить задачи без лишнего шаблонного кода.

Python Academy
7👏7👍6🎉1
Ошибки любят молчать. Твоя задача — их разговорить

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

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

Ты потренируешься искать логику, проверять границы, ломать сценарии — и делать это не ради вредности, а ради качества.

Пройди курс и пойми, как заработать на умении быть внимательным. Это, кстати, редкий и дорогой навык.

Python Academy
👍9
🪄 📂 Быстрое создание временных файлов и папок с tempfile

Нужно что-то временное для логов, кеша или тестов? Вместо хардкода путей и ручной очистки используй модуль tempfile — он сам всё создаст и удалит.

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

Python Academy
👍6🤗5👏1
🔁 🔁 Повторяй действия с itertools.cycle

Когда нужно бесконечно перебирать элементы (например, циклично менять цвета, игроков или статусы), используй itertools.cycle, а не колхозный индекс.

🎯 Итог
itertools.cycle — лаконичное и безопасное решение для бесконечного повторения элементов. Отлично работает там, где важна цикличность.

Python Academy
🤗15
🧪 Проверка наличия подстроки через in быстрее, чем find()

Если тебе просто нужно узнать, содержится ли одна строка в другой, используй оператор in вместо str.find() или str.index() — это читаемее и эффективнее.

🎯 Итог
Оператор in — это питоновский способ проверки наличия элемента или подстроки. Он читабельнее, короче и часто быстрее.

Python Academy
👏126🤩4
**Разница между is и ==

**is оператор проверяет, ссылаются ли оба операнда на один и тот же объект (т.Е. он проверяет, совпадает ли идентификатор операндов или нет).
== оператор сравнивает значения обоих операндов и проверяет, совпадают ли они.
Это is для равенства ссылок и == для равенства значений.

256 является существующим объектом, но 257 им не является. При запуске python будут выделены числа от -5 до 256. Эти числа используются часто, поэтому имеет смысл просто иметь их наготове.

Python Academy
🤗13🔥5👏1
Использование тернарного оператора для упрощения условий

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

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

Python Academy
👏5🤗5
Теперь официально: в Telegram появился ChatGPT и Midjourney

Самую последнюю модель среди нейронок ChatGPT 4.1 теперь можно использовать не выходя из мессенджера

Используйте, потом сами себе спасибо скажете: @ChatGPT

Python Academy
😁11🎉7
Python — как первая гитара: просто, но затягивает

Пока кто-то учит программирование по роликам на YouTube, вы можете за 5 дней собрать Telegram-бота, веб-страницу и понять, ваше ли это вообще.

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

Мини-курс не грузит теорией. Это как пробная вечеринка в мире IT: сделали, почувствовали, захотели больше.

Нажмите “начать” — и пусть Python станет вашим козырем.

Python Academy
👍54
**🕵️‍♂️ Атрибуты по умолчанию с getattr
**
Иногда нужно безопасно получить значение атрибута объекта, даже если он может не существовать. Вместо проверки через hasattr, можно использовать getattr с дефолтным значением.

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

🎯 Итог
getattr(obj, attr, default) — простой способ избежать AttributeError и задать значение по умолчанию для несуществующих атрибутов.

Python Academy
🔥3🎉3👍1
**🧵 Параллельная итерация по нескольким спискам с zip()
**
Если тебе нужно пройтись одновременно по двум (или более) спискам — не используй индексы вручную. Вместо этого — zip()!

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

Python Academy
6
🧊 Immutable словари с types.MappingProxyType

Если нужно создать неизменяемый словарь, например, для конфигурации или констант, можно использовать MappingProxyType из модуля types.

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

Python Academy
👏9😁3
🔁 Один for, два результата: перебор с индексами через enumerate

Когда нужно итерироваться по списку и одновременно иметь доступ к индексам, не используйте range(len(...)) — лучше использовать enumerate().

enumerate() делает код чище, понятнее и безопаснее (избегаете IndexError, если перепутаете индексы).

🎯 Итог
Используй enumerate, когда нужен и элемент, и его индекс — это питонично и читаемо.

Python Academy
👍9🤗9🔥4
🧭 Проверка вхождения подстроки через оператор in — быстрее и проще

Иногда разработчики прибегают к str.find() или str.index() для поиска подстроки, но есть более питоничный способ — использовать in.

🎯 Итог
Используй in для проверки наличия подстроки — это читаемо, кратко и безопасно.

Python Academy
🔥227
**User-Agent

**Механизм защиты от скрапинга – User-Agent. UA – это заголовок, который браузеры отправляют в запросах для идентификации. Обычно он представляет собой длинную строку, в которой объявляется имя браузера, версия, платформа и многое другое.

Python Academy
8👏8🤗7👍4🎉4
🕵️‍♂️ Проверка, откуда была вызвана функция: inspect.stack()

Если нужно отладить или логировать, кто вызывает функцию — можно использовать модуль inspect.

🎯 Итог
inspect.stack() позволяет заглянуть в стек вызовов и узнать, откуда была вызвана функция — мощный инструмент для отладки и логирования.

Python Academy
👏15🎉7👍65🔥5🤩4
🧹 Удаление всех символов, кроме цифр: re.sub()

Когда нужно оставить только цифры в строке (например, при обработке номеров телефонов, ID и т.п.), re.sub() делает это элегантно.

🎯 Итог
re.sub(r"\D", "", text) — быстрый способ избавиться от всего, кроме цифр, в строке. Отлично работает с номерами телефонов и ID.

Python Academy
🤗12👍10😁9🎉8🔥6🤩2👏1
Мир создают те, кто решается — станьте творцом.

Графический дизайн — не про «рисовать». Это про то, как бизнесы общаются с миром через визуал. Это про стиль, ассоциации, характер бренда. И вы можете быть тем, кто это создаёт.

Попробуйте себя в дизайне — без вложений, без риска. За 3 дня вы освоите Illustrator и Photoshop, соберёте концепт бренда и оформите свой первый кейс для портфолио.

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

Python Academy
🎉7🤗5👏3
**🧠 Как элегантно "переключать" поведение с помощью словаря функций
**
Иногда вместо длинных цепочек if или match можно использовать словарь с функциями — это чисто, читаемо и легко расширяемо.

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

Python Academy
👍19😁4🤗42