**🐍 Условное присваивание с оператором or
**
Иногда нужно задать значение по умолчанию, если переменная пуста или None. Вместо длинной конструкции if, можно использовать короткий трюк.
🎯 Итог
Оператор or — удобный способ задать значение по умолчанию, когда переменная может быть пустой, None, 0 или ''. Упрощает код и делает его чище.
Python Academy
**
Иногда нужно задать значение по умолчанию, если переменная пуста или None. Вместо длинной конструкции if, можно использовать короткий трюк.
🎯 Итог
Оператор or — удобный способ задать значение по умолчанию, когда переменная может быть пустой, None, 0 или ''. Упрощает код и делает его чище.
Python Academy
👍4❤1
**🔁 Используй enumerate вместо счётчиков вручную
**
Когда нужно одновременно итерироваться по элементам и знать их индекс — не нужно делать это вручную!
🎯 Итог
enumerate — твой друг при работе с индексами в цикле. Это Pythonic и избавляет от лишнего кода.
Python Academy
**
Когда нужно одновременно итерироваться по элементам и знать их индекс — не нужно делать это вручную!
🎯 Итог
enumerate — твой друг при работе с индексами в цикле. Это Pythonic и избавляет от лишнего кода.
Python Academy
🤗9
**🔁 Используй enumerate вместо счётчиков вручную
**
Когда нужно одновременно итерироваться по элементам и знать их индекс — не нужно делать это вручную!
🎯 Итог
enumerate — твой друг при работе с индексами в цикле. Это Pythonic и избавляет от лишнего кода.
Python Academy
**
Когда нужно одновременно итерироваться по элементам и знать их индекс — не нужно делать это вручную!
🎯 Итог
enumerate — твой друг при работе с индексами в цикле. Это Pythonic и избавляет от лишнего кода.
Python Academy
🎉6😁5🤗3🤩2
🕰️ Быстрая проверка времени выполнения с timeit
Иногда нужно быстро узнать, сколько времени занимает тот или иной фрагмент кода. Вместо написания таймеров — используй модуль timeit.
Модуль timeit точно измеряет производительность фрагмента кода и учитывает мелкие колебания времени.
🎯 Итог
timeit — отличный инструмент для быстрой и точной оценки производительности. Удобен для сравнений разных реализаций алгоритмов и оптимизаций.
Python Academy
Иногда нужно быстро узнать, сколько времени занимает тот или иной фрагмент кода. Вместо написания таймеров — используй модуль timeit.
Модуль timeit точно измеряет производительность фрагмента кода и учитывает мелкие колебания времени.
🎯 Итог
timeit — отличный инструмент для быстрой и точной оценки производительности. Удобен для сравнений разных реализаций алгоритмов и оптимизаций.
Python Academy
🔥12🤗4🤩3
🧪** Проверка типов переменной с помощью typing.get_origin и typing.get_args
**
Когда ты работаешь с аннотациями типов (особенно с Union, List[int], Optional[str] и т.п.), стандартной проверки isinstance() недостаточно.
Это удобно, когда ты хочешь программно проанализировать или валидировать типы в декораторах, валидаторах, фреймворках и библиотеках.
🎯 Итог
С помощью get_origin и get_args ты можешь "распаковать" сложные типы и точно понимать, что за структура стоит за аннотацией. Очень полезно при создании универсальных функций или фреймворков.
Python Academy
**
Когда ты работаешь с аннотациями типов (особенно с Union, List[int], Optional[str] и т.п.), стандартной проверки isinstance() недостаточно.
Это удобно, когда ты хочешь программно проанализировать или валидировать типы в декораторах, валидаторах, фреймворках и библиотеках.
🎯 Итог
С помощью get_origin и get_args ты можешь "распаковать" сложные типы и точно понимать, что за структура стоит за аннотацией. Очень полезно при создании универсальных функций или фреймворков.
Python Academy
👍4👏2😁2🤩1
Мир создают те, кто решается — станьте творцом.
Графический дизайн — не про «рисовать». Это про то, как бизнесы общаются с миром через визуал. Это про стиль, ассоциации, характер бренда. И вы можете быть тем, кто это создаёт.
Попробуйте себя в дизайне — без вложений, без риска. За 3 дня вы освоите Illustrator и Photoshop, соберёте концепт бренда и оформите свой первый кейс для портфолио.
Просто пройдите мини-курс. Он подскажет, насколько вам подходит дизайн. Остальное вы почувствуете сами.
Python Academy
Графический дизайн — не про «рисовать». Это про то, как бизнесы общаются с миром через визуал. Это про стиль, ассоциации, характер бренда. И вы можете быть тем, кто это создаёт.
Попробуйте себя в дизайне — без вложений, без риска. За 3 дня вы освоите Illustrator и Photoshop, соберёте концепт бренда и оформите свой первый кейс для портфолио.
Просто пройдите мини-курс. Он подскажет, насколько вам подходит дизайн. Остальное вы почувствуете сами.
Python Academy
🤗6👏4❤2🔥2😁1
🧵 🧠 Оптимизация многопоточности с concurrent.futures.ThreadPoolExecutor
Иногда нужно быстро запустить несколько задач параллельно, особенно для I/O-операций. Вместо ручной работы с threading, можно использовать ThreadPoolExecutor — простой и читаемый способ.
Этот код запускает задачи в отдельных потоках, используя пул. Отличный способ распараллелить I/O (запросы, чтение файлов и т.п.).
🎯 Итог
ThreadPoolExecutor — лаконичный и мощный инструмент для многопоточности, особенно когда надо быстро распараллелить задачи без лишнего шаблонного кода.
Python Academy
Иногда нужно быстро запустить несколько задач параллельно, особенно для I/O-операций. Вместо ручной работы с threading, можно использовать ThreadPoolExecutor — простой и читаемый способ.
Этот код запускает задачи в отдельных потоках, используя пул. Отличный способ распараллелить I/O (запросы, чтение файлов и т.п.).
🎯 Итог
ThreadPoolExecutor — лаконичный и мощный инструмент для многопоточности, особенно когда надо быстро распараллелить задачи без лишнего шаблонного кода.
Python Academy
❤7👏7👍6🎉1
Ошибки любят молчать. Твоя задача — их разговорить
Большинство багов остаются в продукте, потому что их не заметили. А ты заметишь.
Есть один курс, который за пару вечеров научит подходу: не просто «кликать» по интерфейсу, а мыслить как тестировщик — сомневаться, искать уязвимости и находить, где всё ломается.
Ты потренируешься искать логику, проверять границы, ломать сценарии — и делать это не ради вредности, а ради качества.
Пройди курс и пойми, как заработать на умении быть внимательным. Это, кстати, редкий и дорогой навык.
Python Academy
Большинство багов остаются в продукте, потому что их не заметили. А ты заметишь.
Есть один курс, который за пару вечеров научит подходу: не просто «кликать» по интерфейсу, а мыслить как тестировщик — сомневаться, искать уязвимости и находить, где всё ломается.
Ты потренируешься искать логику, проверять границы, ломать сценарии — и делать это не ради вредности, а ради качества.
Пройди курс и пойми, как заработать на умении быть внимательным. Это, кстати, редкий и дорогой навык.
Python Academy
👍9
🪄 📂 Быстрое создание временных файлов и папок с tempfile
Нужно что-то временное для логов, кеша или тестов? Вместо хардкода путей и ручной очистки используй модуль tempfile — он сам всё создаст и удалит.
🎯 Итог
tempfile позволяет безопасно работать с временными файлами и папками, особенно полезно в тестах или для промежуточных данных — и без забот об очистке.
Python Academy
Нужно что-то временное для логов, кеша или тестов? Вместо хардкода путей и ручной очистки используй модуль tempfile — он сам всё создаст и удалит.
🎯 Итог
tempfile позволяет безопасно работать с временными файлами и папками, особенно полезно в тестах или для промежуточных данных — и без забот об очистке.
Python Academy
👍6🤗5👏1
🔁 🔁 Повторяй действия с itertools.cycle
Когда нужно бесконечно перебирать элементы (например, циклично менять цвета, игроков или статусы), используй itertools.cycle, а не колхозный индекс.
🎯 Итог
itertools.cycle — лаконичное и безопасное решение для бесконечного повторения элементов. Отлично работает там, где важна цикличность.
Python Academy
Когда нужно бесконечно перебирать элементы (например, циклично менять цвета, игроков или статусы), используй itertools.cycle, а не колхозный индекс.
🎯 Итог
itertools.cycle — лаконичное и безопасное решение для бесконечного повторения элементов. Отлично работает там, где важна цикличность.
Python Academy
🤗15
🧪 Проверка наличия подстроки через in быстрее, чем find()
Если тебе просто нужно узнать, содержится ли одна строка в другой, используй оператор in вместо str.find() или str.index() — это читаемее и эффективнее.
🎯 Итог
Оператор in — это питоновский способ проверки наличия элемента или подстроки. Он читабельнее, короче и часто быстрее.
Python Academy
Если тебе просто нужно узнать, содержится ли одна строка в другой, используй оператор in вместо str.find() или str.index() — это читаемее и эффективнее.
🎯 Итог
Оператор in — это питоновский способ проверки наличия элемента или подстроки. Он читабельнее, короче и часто быстрее.
Python Academy
👏12❤6🤩4
**Разница между is и ==
**is оператор проверяет, ссылаются ли оба операнда на один и тот же объект (т.Е. он проверяет, совпадает ли идентификатор операндов или нет).
== оператор сравнивает значения обоих операндов и проверяет, совпадают ли они.
Это is для равенства ссылок и == для равенства значений.
256 является существующим объектом, но 257 им не является. При запуске python будут выделены числа от -5 до 256. Эти числа используются часто, поэтому имеет смысл просто иметь их наготове.
Python Academy
**is оператор проверяет, ссылаются ли оба операнда на один и тот же объект (т.Е. он проверяет, совпадает ли идентификатор операндов или нет).
== оператор сравнивает значения обоих операндов и проверяет, совпадают ли они.
Это is для равенства ссылок и == для равенства значений.
256 является существующим объектом, но 257 им не является. При запуске python будут выделены числа от -5 до 256. Эти числа используются часто, поэтому имеет смысл просто иметь их наготове.
Python Academy
🤗13🔥5👏1
Использование тернарного оператора для упрощения условий
Тернарный оператор в Python — это компактный способ записи условных выражений. Он позволяет в одну строку записать простую проверку и выполнение одного из двух выражений в зависимости от условия.
Использование тернарного оператора помогает упростить простые условия, что делает код легче для восприятия и поддержания.
Python Academy
Тернарный оператор в Python — это компактный способ записи условных выражений. Он позволяет в одну строку записать простую проверку и выполнение одного из двух выражений в зависимости от условия.
Использование тернарного оператора помогает упростить простые условия, что делает код легче для восприятия и поддержания.
Python Academy
👏5🤗5
⚡Теперь официально: в Telegram появился ChatGPT и Midjourney
Самую последнюю модель среди нейронок ChatGPT 4.1 теперь можно использовать не выходя из мессенджера
Используйте, потом сами себе спасибо скажете: @ChatGPT
Python Academy
Самую последнюю модель среди нейронок ChatGPT 4.1 теперь можно использовать не выходя из мессенджера
Используйте, потом сами себе спасибо скажете: @ChatGPT
Python Academy
😁11🎉7
Python — как первая гитара: просто, но затягивает
Пока кто-то учит программирование по роликам на YouTube, вы можете за 5 дней собрать Telegram-бота, веб-страницу и понять, ваше ли это вообще.
Python — язык, с которого начинают аналитики, дата-сайентисты, разработчики и даже автоматизаторы. Он простой, но лежит в основе десятков современных профессий. И спрос на умеющих работать с ним специалистов только растёт.
Мини-курс не грузит теорией. Это как пробная вечеринка в мире IT: сделали, почувствовали, захотели больше.
Нажмите “начать” — и пусть Python станет вашим козырем.
Python Academy
Пока кто-то учит программирование по роликам на YouTube, вы можете за 5 дней собрать Telegram-бота, веб-страницу и понять, ваше ли это вообще.
Python — язык, с которого начинают аналитики, дата-сайентисты, разработчики и даже автоматизаторы. Он простой, но лежит в основе десятков современных профессий. И спрос на умеющих работать с ним специалистов только растёт.
Мини-курс не грузит теорией. Это как пробная вечеринка в мире IT: сделали, почувствовали, захотели больше.
Нажмите “начать” — и пусть Python станет вашим козырем.
Python Academy
👍5❤4
**🕵️♂️ Атрибуты по умолчанию с getattr
**
Иногда нужно безопасно получить значение атрибута объекта, даже если он может не существовать. Вместо проверки через hasattr, можно использовать getattr с дефолтным значением.
Безопасный доступ — особенно полезен при работе с внешними объектами, парсерами или нестабильными структурами данных.
🎯 Итог
getattr(obj, attr, default) — простой способ избежать AttributeError и задать значение по умолчанию для несуществующих атрибутов.
Python Academy
**
Иногда нужно безопасно получить значение атрибута объекта, даже если он может не существовать. Вместо проверки через hasattr, можно использовать getattr с дефолтным значением.
Безопасный доступ — особенно полезен при работе с внешними объектами, парсерами или нестабильными структурами данных.
🎯 Итог
getattr(obj, attr, default) — простой способ избежать AttributeError и задать значение по умолчанию для несуществующих атрибутов.
Python Academy
🔥3🎉3👍1
**🧵 Параллельная итерация по нескольким спискам с zip()
**
Если тебе нужно пройтись одновременно по двум (или более) спискам — не используй индексы вручную. Вместо этого — zip()!
🎯 Итог
zip() делает код чище и избавляет от необходимости вручную управлять индексами. Итерируйся по данным параллельно красиво и питонично!
Python Academy
**
Если тебе нужно пройтись одновременно по двум (или более) спискам — не используй индексы вручную. Вместо этого — zip()!
🎯 Итог
zip() делает код чище и избавляет от необходимости вручную управлять индексами. Итерируйся по данным параллельно красиво и питонично!
Python Academy
❤6
🧊 Immutable словари с types.MappingProxyType
Если нужно создать неизменяемый словарь, например, для конфигурации или констант, можно использовать MappingProxyType из модуля types.
🎯 Итог
MappingProxyType — отличный способ предоставить доступ к данным без риска их изменить. Подходит для защиты конфигураций и глобальных констант.
Python Academy
Если нужно создать неизменяемый словарь, например, для конфигурации или констант, можно использовать MappingProxyType из модуля types.
🎯 Итог
MappingProxyType — отличный способ предоставить доступ к данным без риска их изменить. Подходит для защиты конфигураций и глобальных констант.
Python Academy
👏9😁3
🔁 Один for, два результата: перебор с индексами через enumerate
Когда нужно итерироваться по списку и одновременно иметь доступ к индексам, не используйте range(len(...)) — лучше использовать enumerate().
enumerate() делает код чище, понятнее и безопаснее (избегаете IndexError, если перепутаете индексы).
🎯 Итог
Используй enumerate, когда нужен и элемент, и его индекс — это питонично и читаемо.
Python Academy
Когда нужно итерироваться по списку и одновременно иметь доступ к индексам, не используйте range(len(...)) — лучше использовать enumerate().
enumerate() делает код чище, понятнее и безопаснее (избегаете IndexError, если перепутаете индексы).
🎯 Итог
Используй enumerate, когда нужен и элемент, и его индекс — это питонично и читаемо.
Python Academy
👍9🤗9🔥4
🧭 Проверка вхождения подстроки через оператор in — быстрее и проще
Иногда разработчики прибегают к str.find() или str.index() для поиска подстроки, но есть более питоничный способ — использовать in.
🎯 Итог
Используй in для проверки наличия подстроки — это читаемо, кратко и безопасно.
Python Academy
Иногда разработчики прибегают к str.find() или str.index() для поиска подстроки, но есть более питоничный способ — использовать in.
🎯 Итог
Используй in для проверки наличия подстроки — это читаемо, кратко и безопасно.
Python Academy
🔥22❤7
**User-Agent
**Механизм защиты от скрапинга – User-Agent. UA – это заголовок, который браузеры отправляют в запросах для идентификации. Обычно он представляет собой длинную строку, в которой объявляется имя браузера, версия, платформа и многое другое.
Python Academy
**Механизм защиты от скрапинга – User-Agent. UA – это заголовок, который браузеры отправляют в запросах для идентификации. Обычно он представляет собой длинную строку, в которой объявляется имя браузера, версия, платформа и многое другое.
Python Academy
❤8👏8🤗7👍4🎉4