Заглушка в коде
В ходе исполнения оператора
Например, вам надо сделать несколько функций, вы написали
Или в конструкции
#pass
В ходе исполнения оператора
pass ничего не происходит, поэтому он может использоваться в качестве некой заглушки в тех местах, где это синтаксически необходимо.Например, вам надо сделать несколько функций, вы написали
def'ы и названия, но сам код еще не успели, однако программу надо запустить и проверить что-то другое. Вот тут и понадобится pass.Или в конструкции
try-except, чтобы просто проигнорировать и никак не обрабатывать ошибку в программе.#pass
❤5👎2
Системный дизайн для тех, кто хочет расти дальше разработки
7 сентября стартует курс по проектированию высоконагруженных систем от Devhands.ru.
В программе:
— масштабирование, балансировка, кеши, СУБД, шардинг и высокая доступность;
— CAP/PACELC, консистентность, саги и транзакционные очереди;
— проектирование маркетплейсов, такси, соцсетей, мессенджеров, CDN, онлайн-кинотеатров и других сервисов;
— расчёт нагрузки и перевод бизнес-показателей в требования к системе;
— практика секций системного дизайна на технических интервью.
Всё проходит в формате живых онлайн-сессий: лекции, брейнштормы, домашние проекты и обратная связь. Автор курса — Алексей Рыбак, основатель R&D-центра Devhands.ru и ex-CTO Badoo с 20-летним опытом в высоконагруженных проектах.
Старт — 7 сентября. Изучить программу и записаться можно по ссылке.
Реклама. ИП Рыбак А.А. ИНН 771407709607 Erid: 2VtzqvimBRf
7 сентября стартует курс по проектированию высоконагруженных систем от Devhands.ru.
В программе:
— масштабирование, балансировка, кеши, СУБД, шардинг и высокая доступность;
— CAP/PACELC, консистентность, саги и транзакционные очереди;
— проектирование маркетплейсов, такси, соцсетей, мессенджеров, CDN, онлайн-кинотеатров и других сервисов;
— расчёт нагрузки и перевод бизнес-показателей в требования к системе;
— практика секций системного дизайна на технических интервью.
Всё проходит в формате живых онлайн-сессий: лекции, брейнштормы, домашние проекты и обратная связь. Автор курса — Алексей Рыбак, основатель R&D-центра Devhands.ru и ex-CTO Badoo с 20-летним опытом в высоконагруженных проектах.
Старт — 7 сентября. Изучить программу и записаться можно по ссылке.
Реклама. ИП Рыбак А.А. ИНН 771407709607 Erid: 2VtzqvimBRf
👍2👎2
Нижнее подчеркивание
В Python имя переменной может состоять из одного подчеркивания. Хотя такое имя не достаточно описательно и не должно использоваться, есть по крайней мере три случая, когда
Первое,
Второе, интерактивный режим использует
Третье, документация модуля
#тонкости
В Python имя переменной может состоять из одного подчеркивания. Хотя такое имя не достаточно описательно и не должно использоваться, есть по крайней мере три случая, когда
_ имеет общепринятый смысл.Первое,
_ используется, когда вам нужно придумать имена для значений, которые вам не нужны — например, в циклах for.Второе, интерактивный режим использует
_ для хранения результата последнего выполненного выражения.Третье, документация модуля
gettext рекомендует псевдоним _() для функции gettext(), чтобы минимизировать загромождение вашего кода.#тонкости
👎2
Получаем данные о системе
Кроссплатформенная библиотека psutil позволяет получать информацию о процессоре, памяти, диске, сети, датчиках и запущенных процессах в системе. Примеры базового использования показаны на картинке.
Если говорить про практические применение, psutil полезен в основном для мониторинга системы, ограничения ресурсов процессов и управления запущенными процессами.
Помимо привычных Windows, MacOS и Linux, библиотека также поддерживает системы FreeBSD, OpenBSD, NetBSD, Sun Solaris и AIX.
#psutil
Кроссплатформенная библиотека psutil позволяет получать информацию о процессоре, памяти, диске, сети, датчиках и запущенных процессах в системе. Примеры базового использования показаны на картинке.
Если говорить про практические применение, psutil полезен в основном для мониторинга системы, ограничения ресурсов процессов и управления запущенными процессами.
Помимо привычных Windows, MacOS и Linux, библиотека также поддерживает системы FreeBSD, OpenBSD, NetBSD, Sun Solaris и AIX.
#psutil
👎2👍1🔥1
Функция reduce
Модуль
Таким образом, в примере выше
#функции #reduce
Модуль
functools позволяет хорошо раскрыть функциональные возможности Python. Например, в functools есть интересная функция reduce, которая позволяет «сжимать» данные, применяя последовательно функцию и запоминая результат.Таким образом, в примере выше
reduce умножает 1 на 2, затем результат этого умножения на 3 и так далее.#функции #reduce
👎2
Официальное упорядочивание словарей
Кстати, Python 3.7 на официальном уровне зафиксировал соответствие порядка перебора элементов словарей порядку их добавления.
Но для некоторых это не такая уж и новость, так как и в Python 3.6 словари уже были упорядочены, что видно на примере выше.
Однако это был просто побочный результат реализации, не зафиксированный в стандарте. Новый Python оформил его официально. Теперь можно быть уверенным в сохранении порядка вставки.
#словари
Кстати, Python 3.7 на официальном уровне зафиксировал соответствие порядка перебора элементов словарей порядку их добавления.
Но для некоторых это не такая уж и новость, так как и в Python 3.6 словари уже были упорядочены, что видно на примере выше.
Однако это был просто побочный результат реализации, не зафиксированный в стандарте. Новый Python оформил его официально. Теперь можно быть уверенным в сохранении порядка вставки.
#словари
❤3👎1
PyJWT: Работаем с JSON Web Tokens в Python
В этом примере мы создаём JWT, который содержит идентификатор пользователя и срок его действия. Затем мы декодируем и проверяем токен, чтобы убедиться, что он ещё действителен и подлинен.
#python #pyjwt
PyJWT — это библиотека Python, предназначенная для кодирования, декодирования и проверки подлинности JSON Web Tokens (JWT).JWT — это открытый стандарт (RFC 7519), который определяет компактный и независимый способ безопасной передачи информации между сторонами в виде JSON-объекта. Эта информация может быть проверена и доверена, так как она подписана цифровой подписью.В этом примере мы создаём JWT, который содержит идентификатор пользователя и срок его действия. Затем мы декодируем и проверяем токен, чтобы убедиться, что он ещё действителен и подлинен.
#python #pyjwt
❤6👎1
Многопоточность
В модуле
Параметр
Когда
#потоки #многопоточность
В модуле
threading новый поток выполнения может начинаться с нового threading.Thread и присвоения ему функции для выполнения.Параметр
target ссылается на функцию (или вызываемый объект), который будет работать. Нить не начнет выполнение до start, также не будет вызываться Thread объекта.Когда
my_thread завершается, вызов start выкинет исключение RuntimeError. Если вы хотите запустить Thread в фоновом режиме, то передавайте daemon=True или установите my_thread.daemon в True перед вызовом start().#потоки #многопоточность
👍2👎1🔥1
Метод join у строк
У строк есть полезный метод
Как результат получаем новую строку, которая является объединением всех элементов. При этом они разделены строкой, к которой изначально применялся метод.
Проще говоря, если применить к строке этот метод, то она станет разделителем для элементов в новой строке.
#строки
У строк есть полезный метод
str.join(), который принимает на вход итерируемый объект, элементами которого также должны быть строки.Как результат получаем новую строку, которая является объединением всех элементов. При этом они разделены строкой, к которой изначально применялся метод.
Проще говоря, если применить к строке этот метод, то она станет разделителем для элементов в новой строке.
#строки
❤2👍1👎1
Отправляем электронные письма
SMTP (Simple Mail Transfer Protocol) — это протокол, позволяющий отправлять электронные письма. В стандартной библиотеке есть пакет
Для подключения к серверу будем использовать класс
Отправлять письма можно одноименным методом
Но здесь еще следует обратить внимание на то, что некоторые почтовые сервисы могут не разрешить так сразу подключаться к их серверам и производить операции. В нашем случае пришлось немного повоевать с Gmail.
#email #smtp
SMTP (Simple Mail Transfer Protocol) — это протокол, позволяющий отправлять электронные письма. В стандартной библиотеке есть пакет
smtplib, реализующий его поведение. Для подключения к серверу будем использовать класс
SMTP_SSL, который включает в себя и шифрование. В его аргументы передаем адрес сервера и порт. Авторизация происходит с помощью метода login, в который передаем соответственно логин и пароль. Отправлять письма можно одноименным методом
sendmail, который принимает адреса отправителя и получается, а также сам текст. В конце программы следует закрывать соединение с помощью метода quit(). Но здесь еще следует обратить внимание на то, что некоторые почтовые сервисы могут не разрешить так сразу подключаться к их серверам и производить операции. В нашем случае пришлось немного повоевать с Gmail.
#email #smtp
❤2👎2👍1
Pyfiglet — генерация ASCII-арт текста
Pyfiglet — это библиотека Python, которая позволяет легко создавать красивый ASCII-арт текст прямо в консоли. Идеально подходит для добавления стилизованных заголовков и баннеров в ваши консольные приложения.
Отличный способ оживить вывод вашего кода и привлечь внимание к важным сообщениям.
Pyfiglet — это библиотека Python, которая позволяет легко создавать красивый ASCII-арт текст прямо в консоли. Идеально подходит для добавления стилизованных заголовков и баннеров в ваши консольные приложения.
Отличный способ оживить вывод вашего кода и привлечь внимание к важным сообщениям.
👍3👎2
Прочитать произвольную строку из файла
Предположим, вы решили разработать чат-бота. В нем конечно же будет с десяток самых крутых и полезных функций, может быть даже в нем будет модные нынче нейросети.
И конечно же не обошлось без приветствия, вы специально заготовили несколько различных вариантов в файле
Чтобы вывести это на экран, может помочь функция
#linecache #file
Предположим, вы решили разработать чат-бота. В нем конечно же будет с десяток самых крутых и полезных функций, может быть даже в нем будет модные нынче нейросети.
И конечно же не обошлось без приветствия, вы специально заготовили несколько различных вариантов в файле
text.txt:Приветствую!Здравствуйте!Ку, здарова.Добрый день!Привет!Чтобы вывести это на экран, может помочь функция
getline из модуля linecache. В чем главное отличие этой функции от обычного метода чтения из файла? Функция getline кеширует все строчки файла в списке, так что следующие вызовы get_answer отработают моментально.#linecache #file
❤4👎2
Применяем pathlib взамен os
В Python 3 стандартная библиотека включает модуль
Одно из наиболее впечатляющих преимуществ использования
В общем, этот модуль предлагает замену функциям для работы с файловыми путями из модуля
#path #os
В Python 3 стандартная библиотека включает модуль
pathlib, предоставляющий функцию Path, которая обеспечивает все необходимое для эффективной работы с путями к файлам.Одно из наиболее впечатляющих преимуществ использования
pathlib - это упрощение работы с путями за счет использования Path вместо os.path.join, представляя более простой и изящный метод, как показано на изображении.В общем, этот модуль предлагает замену функциям для работы с файловыми путями из модуля
os, таким как os.mkdir или os.path, на более удобные альтернативы.#path #os
👍1👎1
Мощная декларативная библиотека для работы с датой и временем
Большинство разработчиков знают про модуль datetime из стандартной библиотеки - достаточно хороший инструмент для работы с временем. Но не лишним будет узнать про его мощное расширение - dateutil.
dateutil позволяет писать краткий и декларативный код для решения задач по взаимодействию с датой и временем.
На скриншоте показано получение первого дня прошлого месяца с помощью dateutil и без.
Примечательно то, что dateutil позиционируется как расширение для datetime, что значит, что они друг с другом совместимы.
Большинство разработчиков знают про модуль datetime из стандартной библиотеки - достаточно хороший инструмент для работы с временем. Но не лишним будет узнать про его мощное расширение - dateutil.
dateutil позволяет писать краткий и декларативный код для решения задач по взаимодействию с датой и временем.
На скриншоте показано получение первого дня прошлого месяца с помощью dateutil и без.
Примечательно то, что dateutil позиционируется как расширение для datetime, что значит, что они друг с другом совместимы.
👎2❤1🔥1
Упаковка параметров с помощью urlencode
Довольно часто приходится работать с разнообразными API и совершать get-запросы с передачей множества параметров. Чаще всего составление запроса в коде выглядит примерно так:
Смотрится не слишком презентабельно, однако есть слегка более длинный, но значительно улучающий читаемость кода вариант – функция
#трюки #urllib
Довольно часто приходится работать с разнообразными API и совершать get-запросы с передачей множества параметров. Чаще всего составление запроса в коде выглядит примерно так:
url = 'https://example.com?item={}&size={}&color={}&amount={}'.format('t-shirt', 'M', 'white', 5)Смотрится не слишком презентабельно, однако есть слегка более длинный, но значительно улучающий читаемость кода вариант – функция
urlencode из модуля urllib.#трюки #urllib
👎1
Как работают статические методы
Статические методы создаются в классе при помощи декоратора
Такой тип методов не может модифицировать ни объект, ни сам класс. То есть передавать объект или класс и прописывать
Обычную функцию стоит вносить в класс в качестве статического метода в том случае, когда эта функция логически относится к классу и имеет смысл там быть.
#ооп
Статические методы создаются в классе при помощи декоратора
@staticmethod. Такие методы привязаны к классу, а не объекту — в этом и есть основное отличие.Такой тип методов не может модифицировать ни объект, ни сам класс. То есть передавать объект или класс и прописывать
self или cls в аргументах не нужно.Обычную функцию стоит вносить в класс в качестве статического метода в том случае, когда эта функция логически относится к классу и имеет смысл там быть.
#ооп
👎2
Генерация QR кодов
Сегодня покажем создание QR кодов. Для этого нам понадобится модуль
Все максимально просто, за нас по сути все делает уже написанный модуль.
Выше на картинке мы сделали простую функцию
За создание картинки отвечает метод
Получившийся QR код можете посмотреть тут.
#qrcode #pillow
Сегодня покажем создание QR кодов. Для этого нам понадобится модуль
qrcode, который используется для создания изображений с QR кодом. Все максимально просто, за нас по сути все делает уже написанный модуль.
Выше на картинке мы сделали простую функцию
generate, которая принимает какую-то информацию и название файла, в который нужно сохранить результат в виде QR кода. За создание картинки отвечает метод
qrcode.make, который возвращает нам изображение в формате PIL.Image, а после этого мы его сохраняем в нужном нам файле. Получившийся QR код можете посмотреть тут.
#qrcode #pillow
👎3❤2
RabbitMQ: Брокерская система сообщений для асинхронной обработки данных
Для взаимодействия с
Ключевые характеристики
1. Асинхронность:
2. Маршрутизация:
3. Надежность:
4. Поддержка множества протоколов:
RabbitMQ - это мощная и надежная брокерская система сообщений, которая предназначена для обеспечения асинхронного обмена данными между различными компонентами вашего приложения. Эта брокерская система стала широко используемой в индустрии благодаря своей производительности, надежности и гибкости.Для взаимодействия с
RabbitMQ на языке программирования Python часто используется библиотека pika. Pika предоставляет удобный интерфейс для работы с RabbitMQ, позволяя отправлять и принимать сообщения в очереди.Ключевые характеристики
RabbitMQ:1. Асинхронность:
RabbitMQ предоставляет механизм асинхронной обработки сообщений. Это позволяет разным частям вашего приложения обмениваться данными, не блокируя друг друга.2. Маршрутизация:
RabbitMQ обеспечивает гибкую маршрутизацию сообщений с использованием обменников (exchanges) и очередей (queues). Это позволяет точно определить, какие сообщения должны быть отправлены в какие очереди.3. Надежность:
RabbitMQ обеспечивает сохранность данных даже в случае сбоев. Он поддерживает различные стратегии обработки ошибок и перенаправления сообщений.4. Поддержка множества протоколов:
RabbitMQ поддерживает несколько протоколов связи, включая AMQP (Advanced Message Queuing Protocol) и MQTT (Message Queuing Telemetry Transport). Это делает его универсальным и пригодным для различных типов приложений.❤1👎1
Peewee: Легкая и мощная ORM библиотека для работы с базами данных на Python
Для начала работы с
Одной из ключевых особенностей
Peewee также предоставляет возможность создавать миграции, что облегчает обновление схемы базы данных в процессе разработки.
Документация доступна тут
Peewee - это небольшая и высокоэффективная ORM (Object-Relational Mapping) библиотека на Python, которая облегчает взаимодействие с базами данных и управление данными в ваших приложениях. Она предоставляет удобные средства для создания, чтения, обновления и удаления данных в базе данных, что делает работу с БД более интуитивной и удобной.Для начала работы с
Peewee, вы можете установить библиотеку с помощью pip. Затем вы можете определить модели данных и их отношения, а Peewee автоматически создаст соответствующую структуру в вашей базе данных. Peewee поддерживает различные типы баз данных, включая SQLite, MySQL, PostgreSQL и другие.Одной из ключевых особенностей
Peewee является его простота использования и понятный синтаксис. Вы можете выполнять запросы к данным с минимальными усилиями, а также выполнять сложные операции, такие как объединение таблиц, агрегирование данных и многое другое.Peewee также предоставляет возможность создавать миграции, что облегчает обновление схемы базы данных в процессе разработки.
Документация доступна тут
👎1