Python Education
Yopiq kanal
Обучаем Python как маленьких, так и взрослых Ссылка: @Portal_v_IT Сотрудничество: @oleginc
Ko'proq ko'rsatish8 414
Obunachilar
-124 soatlar
-207 kun
-8830 kun
Postlar arxiv
8 414
Заменяем часть строки
Со строками в Python работать очень удобно, так как встроенных методов для них предостаточно. Одним из методов является str.replace(), который позволяет заменять части строк.
Первым аргументом передается подстрока, которая будет изменяться в исходной строке. Вторым аргументом — то, на что будет заменяться.
Также есть третий, опциональный, аргумент, который отвечает за то, сколько раз вы хотите заменить старую подстроку на новую. По умолчанию, все вхождения заменяются.
#строки
Скачать видео ~ IT ~ Чат
🐍 Python Education
8 414
Аннотации типов: Union и Optional
Ранее на канале был пост про базовые аннотации типов. Но важно знать и про такие аннотации, как Union и Optional.
При необходимости допустить использование не любых типов, а только некоторых, можно использовать аннотацию Union[T, ...] с указанием списка типов в квадратных скобках.
Для объявления опциональных переменных используется Optional[T]. Такая аннотация нужна для переменных, которые либо имеют значение определенного типа, либо равны None.
Кстати, аннотация Optional[T] эквивалентна Union[T, None].
#аннотации
Скачать видео ~ IT ~ Чат
🐍 Python Education
8 414
❗️array.tobytes()
array.tobytes() позволяет быстро преобразовать массив чисел в байтовую строку, что полезно для работы с бинарными файлами, сокетами и сетевыми протоколами.
Скачать видео ~ IT ~ Чат
🐍 Python Education
8 414
Продвинутые кортежи
С помощью кортежей в Pyhton реализовано множественное присваивание.
Кортежи довольно полезный инструмент. Благодаря им в Python возможно поменять местами значения переменных самым простым способом.
a,b = b,a
Для расширенной распаковки кортежа в переменные указываем * перед переменной - в нее распаковывается часть кортежа как список.
Скачать видео ~ IT ~ Чат
🐍 Python Education
8 414
❗️Антипаттерн недели: Изменение списка во время итерации
В Python изменение списка во время его обхода может привести к непредсказуемому поведению, пропуску элементов или IndexError.
✔️ Используйте создание нового списка или итерацию через copy().
Скачать видео ~ IT ~ Чат
🐍 Python Education
8 414
❗️types.GenericAlias
types.GenericAlias позволяет программно создавать типизированные аннотации, как если бы они были объявлены с list[int], dict[str, float] и другими параметризованными типами.
Скачать видео ~ IT ~ Чат
🐍 Python Education
8 414
Django Telegram Logger
Наш подписчик написал удобное расширение для фреймворка Django, которое представляет из себя логгер для Telegram. Можете ознакомиться с исходным кодом.
Модуль устанавливается через пакетный менеджер pip. Для его настройки требуется добавить "telegram_logger" в INSTALLED_APPS, а также "TelegramLoggerMiddleware" в MIDDLEWARE_CLASSES.
И ещё надо указать токен бота в Telegram и user_id аккаунта, на который будут приходить уведомления. Это всё делается в словаре TELEGRAM_LOGGER_CONF
в файле настроек Django.
Присылайте свои проекты в личные сообщения @a1f20. Про самое интересное расскажем на канале.
#проектподписчика
Скачать видео ~ IT ~ Чат
🐍 Python Education
8 414
❗️sys.unraisablehook
sys.unraisablehook позволяет перехватывать исключения, которые не могут быть обработаны обычным try-except, например, ошибки в деструкторах (__del__). Это полезно для отладки и логирования неожиданных ошибок.
Скачать видео ~ IT ~ Чат
🐍 Python Education
8 414
Перечисления
Python поддерживает простой механизм работы с перечислениями, которые ещё называют enum. Подобные перечисления удобно использовать для хранения списков констант.
Из документации можно узнать о том, что Enum — это набор символических имён, привязанных к уникальным, неизменным значениям. Члены одного перечисления можно сравнивать на идентичность.
Также можно задать геттер через @property, который используют для получения перечислений в других форматах. В примере реализовано перечисление цветов в RGB, а через геттер их можно получить в формате hex.
#enum
Скачать видео ~ IT ~ Чат
🐍 Python Education
8 414
❗️faulthandler.dump_traceback()
faulthandler.dump_traceback() позволяет принудительно вывести текущий стек вызовов без аварийного завершения программы. Это полезно для отладки зависших процессов или анализа выполнения кода.
Скачать видео ~ IT ~ Чат
🐍 Python Education
8 414
❗️Антипаттерн недели: Использование изменяемых объектов как ключей в словаре
В Python ключи в dict должны быть неизменяемыми (immutable). Если использовать изменяемые объекты (списки, множества), это приведёт к TypeError, так как такие объекты нехешируемы.
✔️ Используйте кортежи или строки в качестве ключей.
Скачать видео ~ IT ~ Чат
🐍 Python Education
8 414
Задай свой вопрос в нашем чате
Если вы ещё не знаете, то у нас есть активный чат, в котором уже 1200+ участников.
Присоединяйтесь, задавайте свои вопросы и не забывайте помогать другим.
Скачать видео ~ IT ~ Чат
🐍 Python Education
8 414
❗️gc.freeze()
gc.freeze() фиксирует все уже существующие объекты в памяти, исключая их из будущих сборок мусора. Это полезно для оптимизации долгоживущих процессов, например, серверов или CLI-приложений, снижая нагрузку на сборщик мусора.
Скачать видео ~ IT ~ Чат
🐍 Python Education
8 414
Делаем HTTP запросы
Пакет requests абстрагирует сложности выполнения запросов за красивым, простым API, чтобы вы могли сосредоточиться на взаимодействии с сервисами и работе с данными в ваших приложениях.
Устанавливается requests стандартным путем через пакетный менеджер pip. Запросы GET, POST, PUT и DELETE делаются интуитивно понятно. Атрибуты у объекта Response позволяют получить всю информацию об ответе от сервера.
Модуль идеально подходит как для работы со внешними API веб-сервисов, так и для получения HTML кода веб-страниц.
#requests
Скачать видео ~ IT ~ Чат
🐍 Python Education
8 414
❗️inspect.signature()
inspect.signature() позволяет получать информацию о сигнатуре функции, включая её аргументы, значения по умолчанию и аннотации. Это полезно для метапрограммирования, генерации документации и анализа кода во время выполнения.
Скачать видео ~ IT ~ Чат
🐍 Python Education
8 414
❗️pathlib.Path.resolve()
Path.resolve() из модуля pathlib позволяет получить абсолютный путь к файлу или директории, автоматически обрабатывая символические ссылки и относительные пути. Это удобный способ работы с файловой системой в Python.
Скачать видео ~ IT ~ Чат
🐍 Python Education
8 414
Пишем асинхронных ботов для ВК
Под постом про проект подписчика, связанный с написанием ВК ботов, в комментариях упомянули про модуль vkbottle, про который сейчас и расскажем.
Библиотека является асинхронной и требует минимум кода со стороны разработчика, что позволяет сконцентрироваться на задаче, не тратя силы и время на само взаимодействие с API.
Код, написанный на vkbottle, чем-то похож на всем знакомый flask. А пример выше реализует бота, который отвечает сообщением "Здравствуй!" на "Привет".
#боты #vk
Скачать видео ~ IT ~ Чат
🐍 Python Education
8 414
❗️Антипаттерн недели: Игнорирование finally при работе с ресурсами
В Python важно гарантированно освобождать ресурсы (файлы, соединения, сокеты). Если этого не делать, возможны утечки памяти и зависание программы.
✔️ Используйте блок finally или конструкцию with для автоматического управления ресурсами.
Скачать видео ~ IT ~ Чат
🐍 Python Education
8 414
❗️Антипаттерн недели: Игнорирование finally при работе с ресурсами
В Python важно гарантированно освобождать ресурсы (файлы, соединения, сокеты). Если этого не делать, возможны утечки памяти и зависание программы.
✔️ Используйте блок finally или конструкцию with для автоматического управления ресурсами.
Скачать видео ~ IT ~ Чат
🐍 Python Education
8 414
Очистка входных строковых данных
Обработка входных данных часто сводится к преобразованию символов в верхний или нижний регистр. Иногда данные можно очистить с помощью регулярного выражения.
Но в случаях, когда задача усложняется, можно применить более удачный способ её решения. С помощью словаря со значениями для замены символов и метода translate получается крайне лаконичный код.
В примере видим, как символы переноса строки ("n") и табуляции ("t") заменяются на обычные пробелы, а символ "r" удаляется из строки полностью.
#строки
Скачать видео ~ IT ~ Чат
🐍 Python Education
