Forwarded from Senior Python Developer
Разбивание массива на маленькие куски указанного размера
Для создания списка желаемого размера используется range, а заполняется список при помощи map.
Для создания списка желаемого размера используется range, а заполняется список при помощи map.
Forwarded from Senior Python Developer
Разница между генераторными выражениями и генераторами коллекций
Записи в первой и второй строчке в коде выше очень похожи, но различаются видами скобок. В генераторе списка они квадратные, а в генераторном выражении – круглые.
Распечатав переменные, можно заметить, что значением переменной
Если вам нужен результат, например, в виде списка, прямо сейчас для дальнейшего выполнения программы, то используйте генераторы коллекций.
А если же значения понадобятся еще не скоро или неизвестно, понадобятся ли вообще, то предпочтительнее использовать генераторы, чтобы не занимать лишнюю память и не нагружать систему.
Записи в первой и второй строчке в коде выше очень похожи, но различаются видами скобок. В генераторе списка они квадратные, а в генераторном выражении – круглые.
Распечатав переменные, можно заметить, что значением переменной
a является список, а переменная x хранит в себе объект генератора. И здесь возникает вопрос: что же использовать?Если вам нужен результат, например, в виде списка, прямо сейчас для дальнейшего выполнения программы, то используйте генераторы коллекций.
А если же значения понадобятся еще не скоро или неизвестно, понадобятся ли вообще, то предпочтительнее использовать генераторы, чтобы не занимать лишнюю память и не нагружать систему.
Forwarded from Senior Python Developer
FastAPI
Интересно, что автор фреймворка глубоко изучил несколько других фреймворков, от классических, таких как Django, до более современных, таких как Sanic, а также изучил различные технологии в NestJS (веб-фреймворк Node.js, Typescript).
Фреймворк имеет важную особенность – автоматическая генерация документации: как только ваши эндпойнты будут реализованы, вы сможете поиграться с API, используя соответствующий стандартам пользовательский интерфейс. Поддерживаются SwaggerUI, ReDoc и другие.
FastAPI построен на удивительной библиотеке Starlette, в результате чего производительность сравнима с Node.js, а в некоторых случаях даже Go.
Интересно, что автор фреймворка глубоко изучил несколько других фреймворков, от классических, таких как Django, до более современных, таких как Sanic, а также изучил различные технологии в NestJS (веб-фреймворк Node.js, Typescript).
Фреймворк имеет важную особенность – автоматическая генерация документации: как только ваши эндпойнты будут реализованы, вы сможете поиграться с API, используя соответствующий стандартам пользовательский интерфейс. Поддерживаются SwaggerUI, ReDoc и другие.
FastAPI построен на удивительной библиотеке Starlette, в результате чего производительность сравнима с Node.js, а в некоторых случаях даже Go.
Forwarded from Senior Python Developer
Функция readline()
Функция readline() используется для построчного чтения содержимого файла. Она используется для крупных файлов. С ее помощью можно получать доступ к любой строке в любой момент.
Допустим у нас есть файл test.txt с несколькими строками:
This is line1.
This is line2.
This is line3.
Посмотрим, как функция readline() работает в test.txt.
Функция readline() используется для построчного чтения содержимого файла. Она используется для крупных файлов. С ее помощью можно получать доступ к любой строке в любой момент.
Допустим у нас есть файл test.txt с несколькими строками:
This is line1.
This is line2.
This is line3.
Посмотрим, как функция readline() работает в test.txt.
Forwarded from Senior Python Developer
Узнаем информацию о номере телефона
phonenumbers - один из модулей, который предоставляет множество функций, таких как предоставление базовой информации о номере телефона, проверка номера телефона и т.д.
Установка модуля -
В нашем примере мы узнаем что «+91987654З210» является Индийским номером телефона.
Больше информации вы можете найти здесь.
phonenumbers - один из модулей, который предоставляет множество функций, таких как предоставление базовой информации о номере телефона, проверка номера телефона и т.д.
Установка модуля -
pip install phonenumbers.В нашем примере мы узнаем что «+91987654З210» является Индийским номером телефона.
Больше информации вы можете найти здесь.
Forwarded from Senior Python Developer
Скорость соединения
Нужно проверить скорость интернета? Не проблема, так как есть специальная библиотека Pyspeedtest, которая позволяет быстро выполнить полную проверку скорости вашего WiFi.
Установка библиотеки - pip install pyspeedtest.
Нужно проверить скорость интернета? Не проблема, так как есть специальная библиотека Pyspeedtest, которая позволяет быстро выполнить полную проверку скорости вашего WiFi.
Установка библиотеки - pip install pyspeedtest.
Forwarded from Senior Python Developer
Сортировка списков
В Python есть два встроенных варианта для сортировки списков — функция
Функция
Метод
В Python есть два встроенных варианта для сортировки списков — функция
sorted() и метод list.sort(). Результат в обоих случаях одинаков, но всё же есть нюансы. Функция
sorted() принимает на вход аргумент в виде списка, а возвращает уже новый отсортированный список. При этом исходный список не изменяется. Метод
sort() в свою очередь применяется к списку, изменяет его непосредственно и ничего не возвращает.Forwarded from Senior Python Developer
Wget
Наверняка вам не раз приходилось писать методы для какой-то специфической работы с вебом. Но я вас огорчу – вы делали это зря. Ведь уже есть wget. Рекурсивно скачать сайт? Забрать со страницы все изображения? Для wget это не проблема.
Наверняка вам не раз приходилось писать методы для какой-то специфической работы с вебом. Но я вас огорчу – вы делали это зря. Ведь уже есть wget. Рекурсивно скачать сайт? Забрать со страницы все изображения? Для wget это не проблема.
Forwarded from Senior Python Developer
🐍🚀 Создаем рекрутинговый портал на Django: часть 3
В заключительной части: создание мессенджера, реализация поиска по профилям и проектам, отзывы и пагинация.
https://proglib.io/sh/XvIgh4P2Ad
В заключительной части: создание мессенджера, реализация поиска по профилям и проектам, отзывы и пагинация.
https://proglib.io/sh/XvIgh4P2Ad
Forwarded from Senior Python Developer
🧠 Концепция IP-адресов на примере Python-модуля ipaddress
Рассказываем, как работать с IP-адресами классического протокола IPv4 в теории и на практике – в коде Python. Показываем, как проверить связь между группой IP-адресов и их соответствие подсетям и диапазонам частных IP-адресов.
https://proglib.io/p/koncepciya-ip-adresov-na-primere-python-modulya-ipaddress-2020-08-07
Рассказываем, как работать с IP-адресами классического протокола IPv4 в теории и на практике – в коде Python. Показываем, как проверить связь между группой IP-адресов и их соответствие подсетям и диапазонам частных IP-адресов.
https://proglib.io/p/koncepciya-ip-adresov-na-primere-python-modulya-ipaddress-2020-08-07
Библиотека программиста
🌐 Концепция IP-адресов на примере Python-модуля ipaddress
Рассказываем, как работать с IP-адресами классического протокола IPv4 в теории и на практике – в коде Python. Показываем, как проверить связь между группой IP-адресов и их соответствие подсетям и диапазонам частных IP-адресов.
Forwarded from Senior Python Developer
Конвертируем словарь в список в Python
Благодаря следующему примеру кода с картинки мы можем с легкостью преобразовать наш в словарь в список.
Благодаря следующему примеру кода с картинки мы можем с легкостью преобразовать наш в словарь в список.
Forwarded from Senior Python Developer
Цикл событий в Python
Цикл событий — это ядро для каждого асинхронного приложения. Он нужен для того, что бы запускать асинхронные задачи и функции обратного вызова.
Поговорим теперь о низкоуровневых методах:
get_running_loop — Возвращает текущий цикл событий в потоке. Если его нет, то будет RuntimeError. Может быть вызвана только с корутины или функции обратного вызова.
get_event_loop — Делает тоже самое что и функция выше, но если set_event_loop не был вызван, то в добавок ещё закрепит новый цикл.
new_event_loop — Создает новый цикл событий.
set_event_loop — Устанавливает цикл событий для текущего потока.
Немного о методах для работы с циклами событий:
run_forever — Запускает цикл событий до тех пока stop не будет вызван.
stop — Останавливает цикл событий.
Также есть методы is_closed и is_running для проверки состояния.
Пример можете посмотреть на картинке выше. Много другого полезного вы можете прочитать в документации.
Цикл событий — это ядро для каждого асинхронного приложения. Он нужен для того, что бы запускать асинхронные задачи и функции обратного вызова.
Поговорим теперь о низкоуровневых методах:
get_running_loop — Возвращает текущий цикл событий в потоке. Если его нет, то будет RuntimeError. Может быть вызвана только с корутины или функции обратного вызова.
get_event_loop — Делает тоже самое что и функция выше, но если set_event_loop не был вызван, то в добавок ещё закрепит новый цикл.
new_event_loop — Создает новый цикл событий.
set_event_loop — Устанавливает цикл событий для текущего потока.
Немного о методах для работы с циклами событий:
run_forever — Запускает цикл событий до тех пока stop не будет вызван.
stop — Останавливает цикл событий.
Также есть методы is_closed и is_running для проверки состояния.
Пример можете посмотреть на картинке выше. Много другого полезного вы можете прочитать в документации.
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 для асинхронной обработки длительных и ресурсоемких задач в фоновом режиме.