Forwarded from Senior Python Developer
Как узнать о том, что строка включает в себя только пробелы?
Есть метод
Примеры использования метода
Есть метод
isspace(), который возвращает True только в том случае, если строка состоит исключительно из пробелов.Примеры использования метода
isspace() рассмотрены на картинке.Forwarded from Senior Python Developer
Отправляем запросы с HTTPX
Интересный пакет для работы с веб-запросам. Как говорят сами разработчики, это HTTP клиент следующего поколения.
Сравнивая с привычным
— Стандартный синхронный интерфейс, но также есть поддержка асинхронности
— Поддержка HTTP/1.1 и HTTP/2
— Возможность отправлять запросы напрямую к WSGI и ASGI приложениям
— Полная поддержка аннотаций типов
— 100% покрытие тестами
В общем, очень классная альтернатива большинству популярных пакетов, советую посмотреть их доки. Еще у них есть туториал для продвинутого использования.
Интересный пакет для работы с веб-запросам. Как говорят сами разработчики, это HTTP клиент следующего поколения.
Сравнивая с привычным
requests, у httpx есть следующие преимущества:— Стандартный синхронный интерфейс, но также есть поддержка асинхронности
— Поддержка HTTP/1.1 и HTTP/2
— Возможность отправлять запросы напрямую к WSGI и ASGI приложениям
— Полная поддержка аннотаций типов
— 100% покрытие тестами
В общем, очень классная альтернатива большинству популярных пакетов, советую посмотреть их доки. Еще у них есть туториал для продвинутого использования.
Forwarded from Senior Python Developer
Очищаем строки
Чаще всего обработка входных данных сводится к преобразованию символов в верхний или нижний регистр. Иногда данные можно очистить с помощью регулярного выражения.
Но в случаях, когда задача усложняется, можно применить более удачный способ её решения. С помощью словаря со значениями для замены символов и метода
В примере видим, как символы переноса строки
Чаще всего обработка входных данных сводится к преобразованию символов в верхний или нижний регистр. Иногда данные можно очистить с помощью регулярного выражения.
Но в случаях, когда задача усложняется, можно применить более удачный способ её решения. С помощью словаря со значениями для замены символов и метода
translate получается крайне лаконичный код.В примере видим, как символы переноса строки
"\n" и табуляции "\t" заменяются на обычные пробелы, а символ "\r" удаляется из строки полностью.Forwarded from Senior Python Developer
Как работают статические методы
Статические методы создаются в классе при помощи декоратора
Такой тип методов не может модифицировать ни объект, ни сам класс. То есть передавать объект или класс и прописывать self или cls в аргументах не нужно.
Обычную функцию стоит вносить в класс в качестве статического метода в том случае, когда эта функция логически относится к классу и имеет смысл там быть.
Статические методы создаются в классе при помощи декоратора
@staticmethod. Такие методы привязаны к классу, а не объекту — в этом и есть основное отличие.Такой тип методов не может модифицировать ни объект, ни сам класс. То есть передавать объект или класс и прописывать self или cls в аргументах не нужно.
Обычную функцию стоит вносить в класс в качестве статического метода в том случае, когда эта функция логически относится к классу и имеет смысл там быть.
Forwarded from Senior Python Developer
🐍 Валидация данных при помощи Pydantic
Python хорош тем, что у него много библиотек. Автор рассказывает, зачем нужна Pydantic, чем она лучше marshmallow, как ей пользоваться и как с её помощью правильно проверять данные.
https://youtu.be/_5kCjRj6bng
Python хорош тем, что у него много библиотек. Автор рассказывает, зачем нужна Pydantic, чем она лучше marshmallow, как ей пользоваться и как с её помощью правильно проверять данные.
https://youtu.be/_5kCjRj6bng
YouTube
"Валидация данных при помощи Pydantic", Степан Плетнев (Tinkoff.ru)
Enjoy the videos and music you love, upload original content, and share it all with friends, family, and the world on YouTube.
Forwarded from Senior Python Developer
Логические all и any
Одна из многих причин, почему Python является таким популярным языком, заключается в том, что он читаем и выразителен. Предлагаю взглянуть на прикрепленный код.
Функция any возвращает значение True, если хотя бы одно из переданных утверждений верно, all – в случае, если все верны.
В целом эти две функции заслуживают отдельного внимания всего лишь из-за их простоты в использовании.
Одна из многих причин, почему Python является таким популярным языком, заключается в том, что он читаем и выразителен. Предлагаю взглянуть на прикрепленный код.
Функция any возвращает значение True, если хотя бы одно из переданных утверждений верно, all – в случае, если все верны.
В целом эти две функции заслуживают отдельного внимания всего лишь из-за их простоты в использовании.
Forwarded from Senior Python Developer
Упаковка параметров с помощью urlencode
Довольно часто приходится работать с разнообразными API и совершать get-запросы с передачей множества параметров. Чаще всего составление запроса в коде выглядит примерно так:
Смотрится не слишком презентабельно, однако есть слегка более длинный, но значительно улучающий читаемость кода вариант – функция urlencode из из модуля urllib.
Довольно часто приходится работать с разнообразными API и совершать get-запросы с передачей множества параметров. Чаще всего составление запроса в коде выглядит примерно так:
url = 'https://example.com?item={}&size={}&color={}&amount={}'.format('t-shirt', 'M', 'white', 5)Смотрится не слишком презентабельно, однако есть слегка более длинный, но значительно улучающий читаемость кода вариант – функция urlencode из из модуля urllib.
Forwarded from Senior Python Developer
🐍🚀⌛ Django, Celery и Redis: гайд по работе с асинхронными задачами
Подробная инструкция по интеграции Celery и Redis в проект Django для асинхронной обработки длительных и ресурсоемких задач в фоновом режиме.
https://proglib.io/p/django-celery-i-redis-gayd-po-rabote-s-asinhronnymi-zadachami-2022-08-22
Подробная инструкция по интеграции Celery и Redis в проект Django для асинхронной обработки длительных и ресурсоемких задач в фоновом режиме.
https://proglib.io/p/django-celery-i-redis-gayd-po-rabote-s-asinhronnymi-zadachami-2022-08-22
Библиотека программиста
🐍🚀⌛ Django, Celery и Redis: гайд по работе с асинхронными задачами
Подробная инструкция по интеграции Celery и Redis в проект Django для асинхронной обработки длительных и ресурсоемких задач в фоновом режиме.
Forwarded from Senior Python Developer
Именование среза с функцией slice
Работа с множеством значений, которые заданы индексами, может быстро закончиться беспорядком как в плане поддержки, так и читабельности кода.
Один из вариантов улучшения ситуации заключается в использовании констант для значений, задаваемых индексами. Однако есть и более удачный способ написания качественного кода, как показано на картинке.
Работа с множеством значений, которые заданы индексами, может быстро закончиться беспорядком как в плане поддержки, так и читабельности кода.
Один из вариантов улучшения ситуации заключается в использовании констант для значений, задаваемых индексами. Однако есть и более удачный способ написания качественного кода, как показано на картинке.
Forwarded from Senior Python Developer
Вывод уникального идентификатора переменной
Уникальный идентификатор переменной находится с помощью метода id(). Для этого нужно просто передать в метод имя переменной.
Идентификатор объекта – это целое число, которое гарантированно будет уникальным и постоянным для этого объекта в течение его жизненного цикла.
Уникальный идентификатор переменной находится с помощью метода id(). Для этого нужно просто передать в метод имя переменной.
Идентификатор объекта – это целое число, которое гарантированно будет уникальным и постоянным для этого объекта в течение его жизненного цикла.
Forwarded from Психология от Искусственного Интеллекта
Forwarded from Senior Python Developer
Отправляем универсальные уведомления
В Python присутствует интересный пакет notifiers, который позволяет отправлять уведомления на почту, через Телеграм бота, в Слэк и еще много куда. Всего доступно 16 провайдеров, подробнее про них в документации.
В функцию get_notifier передаем название провайдера в виде строки и получаем объект, с которым можно работать. Отправить уведомление можно с помощью универсального метода notify.
Если не уверены, какие аргументы нужно передать для отправки уведомления, то можете посмотреть их через атрибут required у созданного объекта.
Например, для Телеграма нужно передать токен бота, айди чата и само сообщение. В случае с почтой необходимо указать логин, пароль, адресата и также сообщение.
В Python присутствует интересный пакет notifiers, который позволяет отправлять уведомления на почту, через Телеграм бота, в Слэк и еще много куда. Всего доступно 16 провайдеров, подробнее про них в документации.
В функцию get_notifier передаем название провайдера в виде строки и получаем объект, с которым можно работать. Отправить уведомление можно с помощью универсального метода notify.
Если не уверены, какие аргументы нужно передать для отправки уведомления, то можете посмотреть их через атрибут required у созданного объекта.
Например, для Телеграма нужно передать токен бота, айди чата и само сообщение. В случае с почтой необходимо указать логин, пароль, адресата и также сообщение.
Forwarded from Senior Python Developer
Метод str.swapcase()
Возвращает копию строки с измененным регистром. Если символ был в нижнем регистре — он перейдёт в верхний и наоборот. Даже такой редко используемый метод был предусмотрен разработчиками языка :D
Возвращает копию строки с измененным регистром. Если символ был в нижнем регистре — он перейдёт в верхний и наоборот. Даже такой редко используемый метод был предусмотрен разработчиками языка :D
Forwarded from Senior Python Developer
Python-dateutil
Пакет предлагает мощные расширения стандартного модуля datetime. С этой библиотекой можно сделать много полезного, но мы ограничимся одним примером, который используется чаще всего, — нечеткий разбор (парсинг) дат. Документацию пакета можете найти по ссылке.
Пакет предлагает мощные расширения стандартного модуля datetime. С этой библиотекой можно сделать много полезного, но мы ограничимся одним примером, который используется чаще всего, — нечеткий разбор (парсинг) дат. Документацию пакета можете найти по ссылке.
Forwarded from Senior Python Developer
Преобразование списка в словарь
В этом примере мы преобразуем список формата [key_1, value_1, key_2, value_2] в словарь {key_1: value_1, key_2: value_2}.
Пример преобразования представлен на картинке.
В этом примере мы преобразуем список формата [key_1, value_1, key_2, value_2] в словарь {key_1: value_1, key_2: value_2}.
Пример преобразования представлен на картинке.
Forwarded from Senior Python Developer
Получение срезов итераторов
Если вы попытаетесь получить срез итератора, то столкнётесь с ошибкой TypeError, сообщающей о том, что на объект-генератор нельзя оформить подписку. Однако эта проблема поддаётся решению (см картинку).
Воспользовавшись методом itertools.islice, можно создать объект islice, который представляет собой итератор, выдающий нужные элементы. Однако здесь важно отметить то, что эта конструкция использует все элементы генератора вплоть до начала среза и все элементы в объекте islice.
Если вы попытаетесь получить срез итератора, то столкнётесь с ошибкой TypeError, сообщающей о том, что на объект-генератор нельзя оформить подписку. Однако эта проблема поддаётся решению (см картинку).
Воспользовавшись методом itertools.islice, можно создать объект islice, который представляет собой итератор, выдающий нужные элементы. Однако здесь важно отметить то, что эта конструкция использует все элементы генератора вплоть до начала среза и все элементы в объекте islice.
Forwarded from Senior Python Developer
This media is not supported in your browser
VIEW IN TELEGRAM
tqdm
Отличный инструмент для подключения диаграммы выполнения вашей программы. Название происходит от арабского слова "taqadum", что означает "прогресс".
Для создания прогресс-бара необходим лишь один вызов функции:
На гифке пример прогрессбара. В реальном времени показывается процент выполнения, визуальное представление, сколько итераций завершилось, скорость выполнения и ожидаемое время окончания, а сам модуль не требует никаких внешних библиотек.
Отличный инструмент для подключения диаграммы выполнения вашей программы. Название происходит от арабского слова "taqadum", что означает "прогресс".
Для создания прогресс-бара необходим лишь один вызов функции:
from tqdm import tqdm
from tqdm.notebook import tqdm # для использования в Jupyter Notebook
for i in tqdm(range(10000)):
...На гифке пример прогрессбара. В реальном времени показывается процент выполнения, визуальное представление, сколько итераций завершилось, скорость выполнения и ожидаемое время окончания, а сам модуль не требует никаких внешних библиотек.
Forwarded from Senior Python Developer
Ограничение использования памяти и процессора
Если вместо оптимизации программы вы хотите ограничить используемые ею ресурсы компьютера, можно использовать полезные библиотеки. На картинке показано, как реализовать ограничения процессорного времени и объема используемой памяти.
Для работы с процессором мы сначала получаем значения soft и hard лимитов для ресурса LIMIT_CPU, а затем ставим лимит, используя некоторое число секунд, задаваемое при помощи аргумента seconds, и значение hard лимита. После регистрируется обработчик signal, который начинает процедуру выхода при превышении выделенного нами времени. Для работы с памятью мы также получаем значения hard и soft лимитов, а потом ставим ограничения с помощью метода setrlimit, передавая в него размер ограничения и значение hard лимита.
Если вместо оптимизации программы вы хотите ограничить используемые ею ресурсы компьютера, можно использовать полезные библиотеки. На картинке показано, как реализовать ограничения процессорного времени и объема используемой памяти.
Для работы с процессором мы сначала получаем значения soft и hard лимитов для ресурса LIMIT_CPU, а затем ставим лимит, используя некоторое число секунд, задаваемое при помощи аргумента seconds, и значение hard лимита. После регистрируется обработчик signal, который начинает процедуру выхода при превышении выделенного нами времени. Для работы с памятью мы также получаем значения hard и soft лимитов, а потом ставим ограничения с помощью метода setrlimit, передавая в него размер ограничения и значение hard лимита.
Forwarded from Senior Python Developer
👨💻 Алгоритмы на Python — лекции МФТИ
Тимофей Хирьянов — один из лучших преподавателей по программированию, его занятия легко смотрятся и запоминаются, а богатый опыт работы в индустрии и педагогике помогает грамотно структурировать курсы.
Лекция №1
https://youtu.be/KdZ4HF1SrFs
Лекция №2
https://youtu.be/ZgSx3yH7sJI
Лекция №3
https://youtu.be/b8m9uRMpKJk
Лекция №4
https://youtu.be/DvsCUI5FNnI
Лекция №5
https://youtu.be/3I6OjxoeSS8
Весь плейлист с остальными лекциями: https://youtube.com/playlist?list=PLRDzFCPr95fK7tr47883DFUbm4GeOjjc0
Тимофей Хирьянов — один из лучших преподавателей по программированию, его занятия легко смотрятся и запоминаются, а богатый опыт работы в индустрии и педагогике помогает грамотно структурировать курсы.
Лекция №1
https://youtu.be/KdZ4HF1SrFs
Лекция №2
https://youtu.be/ZgSx3yH7sJI
Лекция №3
https://youtu.be/b8m9uRMpKJk
Лекция №4
https://youtu.be/DvsCUI5FNnI
Лекция №5
https://youtu.be/3I6OjxoeSS8
Весь плейлист с остальными лекциями: https://youtube.com/playlist?list=PLRDzFCPr95fK7tr47883DFUbm4GeOjjc0
YouTube
Алгоритмы на Python 3. Лекция №1
Практика: http://judge.mipt.ru/mipt_cs_on_python3/
Telegram-группа: https://t.me/tkhirianov_mipt_cs_on_python3
Спонсировать: https://www.patreon.com/tkhirianov или https://www.paypal.me/tkhirianov
курс: Информатика. Алгоритмы и структуры данных на Python…
Telegram-группа: https://t.me/tkhirianov_mipt_cs_on_python3
Спонсировать: https://www.patreon.com/tkhirianov или https://www.paypal.me/tkhirianov
курс: Информатика. Алгоритмы и структуры данных на Python…
Forwarded from Аркадий
по SQL я корчое что бы потренироватьься прорешал все задачки на SQL Academy, на это ушло часа 4 суммарно, там есть пара задач где пришлось подумать
https://sql-academy.org/ru/trainer?sort=byId
https://sql-academy.org/ru/trainer?sort=byId