TGINSIGHT CHAT
Python Academy
@python_academy
EducaciónPython Academy — один канал вместо тысячи учебников Чат канала: @python_academy_chat Сотрудничество: @zubar89 Канал включён в перечень РКН: https://rkn.link/TVu
Posts recientes
Etiqueta: #python · 330 posts
dict.get() dict.get() — это метод словаря, который используется для получения значения по заданному ключу. Однако, в отличие от обращения к элементу словаря с использованием квадратных скобок (dict[key]), метод get() предоставляет дополнительную возможность задать значение по умолчанию, которое будет возвращено, если ключ не найден в словаре. Синтаксис метода get() выглядит так: value = dict.get(key, default) key: Ключ, по которому производится поиск в словаре. default (необязательный): Значение, которое будет возвращено, если ключ не найден в словаре. Если default не указан, и ключ не найден, метод вернет None. #python
Hashtags
Тестирование на pytest pytest — ближе по духу к языку Python нежели unittest, которая накладывает определенные обязательства при разработке тестов. Например, создание классов-наследников от TestCase или выполнение определенной процедуры запуска тестов. Но при разработке на pytest ничего этого делать не нужно. Вы просто пишете функции, которые должны начинаться с "test_" и используете assert, встроенные в Python. Также он поддерживает запуск тестов на unittest и nose, то есть полная обратная совместимость с ними. #python#pytest#assert
Форматируем строку для URL-адреса Для начала стоит вспомнить, что слаг (slug) — это уникальная строка-идентификатор, понятная человеку и содержащая только "безопасные" символы: латинские символы в нижнем регистре, цифры и дефис. Чаще всего такое понятие можно встретить в контексте URL-адресов. Например, можно формировать слаг из названия какой-нибудь статьи и вставлять его в ссылку, чтобы людям было понятно, куда они переходят. Выше в коде мы написали простую функцию, где использовали методы lower() для приведения в нижний регистр и strip() для удаления пробелов слева и справа. Также для удаления некоторых символов и замены на знак дефиса были использованы регулярные выражения и встроенный пакет re для работы с ними. #python#re
Делаем ошибки более читаемыми В Python есть удобный модуль pretty_errors, который делает стандартный вывод исключений и их traceback более удобным для чтения и красивым в целом. Установить его можно через пакетный менеджер pip. А для того, чтобы он заработал, достаточно импортировать его в ваш код. Как результат, вывод ошибок в вашей программе будет выглядеть более читаемым. Более того, разные части вывода будут помечаться разным цветом вместо монотонного серого цвета. Также модуль можно модифицировать, указав параметры в конфиге. Подробнее можете почитать в документации модуля. #python#pretty_errors
Hashtags
Работаем с USB PyUSB — это библиотека, которая обеспечивает легкий доступ к USB. Имеет поддержку изохронной передачи, если её поддерживает бэкенд. Основные методы для работы с USB, такие как find(), show_devices() и т. д, хранятся в usb.core. Пакет usb.util содержит вспомогательные функции. Функция find() используется для поиска устройств, подключенных к системе. Также есть реализация внешнего и внутреннего интерфейса, для изоляции API от деталей реализации системы. Связующим звеном между двумя слоями является интерфейс IBackend. PyUSB поставляется со встроенными бэкэндами для libusb 1.0,libusb 0.1 и OpenUSB. #python#PyUSB
Управление Docker контейнерами с помощью docker-py docker-py – это официальная библиотека Python для Docker, предоставляющая API для взаимодействия с Docker Daemon. С её помощью можно автоматизировать процессы создания, запуска, остановки и удаления контейнеров, работы с образами, сетями и томами Docker. import docker # Создание клиента client = docker.from_env() # Запуск контейнера container = client.containers.run("ubuntu:latest", "echo Hello, docker-py!", detach=True) # Получение логов контейнера print(container.logs().decode()) # Остановка и удаление контейнера container.stop() container.remove() В данном примере мы создаем клиента Docker, используя переменные окружения текущей сессии. Затем мы запускаем контейнер из образа ubuntu:latest, выполняем в нем команду echo, выводим логи работы контейнера и в конце останавливаем и удаляем контейнер. Управление образами с помощью docker-py: # Получение списка всех образов images = client.images.list() # Вывод информации о каждом образе for image in images: print(f'ID: {image.id}, Теги: {image.tags}') Для дальнейшего изучения и ознакомления с более продвинутыми возможностями рекомендуется обратиться к официальной документации. #python#docker#dockerpy
Асинхронный фреймворк для разработки сетевых приложений Twisted Фреймворк предоставляет реализацию множества протоколов, таких как TCP, UDP, SSL/TLS, DNS, и других, используя асинхронный стиль программирования. Код выше создает TCP-сервер, прослушивающий порт 1234, и при подключении клиента создает экземпляр MyProtocol, который обрабатывает данные в методе dataReceived. В приведенном примере, сервер просто отправляет обратно полученные данные. Twisted также предоставляет возможности для работы с асинхронными задачами, таймерами, и другими асинхронными концепциями. Это позволяет создавать эффективные и отзывчивые сетевые приложения. #python
Hashtags
Библиотека символьной математики для Python SymPy В отличие от численных вычислений, символьная математика работает с математическими объектами, такими как переменные, выражения и уравнения, в абстрактной форме, а не приближенно численно. SymPy позволяет проводить символьные вычисления, что означает, что вы можете работать с математическими выражениями в их аналитической форме. #python
Hashtags
Метод join у строк У строк есть полезный метод str.join(), который принимает на вход итерируемый объект, элементами которого также должны быть строки. Как результат получаем новую строку, которая является объединениемвсехэлементов. При этом они разделены строкой, к которой изначально применялся метод. Проще говоря, если применить к строке этот метод, то она станет разделителем для элементов в новой строке. #python#string
Поверхностное копирование Копирование объектов может быть «поверхностное» (shallow) или «глубокое» (deep). Различия между ними заключаются в том, как обрабатываются вложенные объекты. При поверхностном копировании создается новый объект, но его внутренние элементы (если они тоже являются объектами) остаются ссылками на те же объекты, что и в оригинале. Другими словами, копируются только ссылки на объекты, но не сами объекты. #python
Hashtags
Использование модуля secrets для генерации случайных значений Модуль secrets, встроенный в Python, предназначен для создания криптографически защищенных случайных чисел. Это особенно полезно для генерации надежныхпаролей, аутентификационныхтокенов и других безопасных данных, благодаря использованию возможностей операционной системы. Применение модуля secrets просто и напоминает работу с модулем random. Вот некоторые из его функций: - secrets.choice(collection) выбирает и возвращает случайныйэлемент из предоставленной коллекции. - secrets.randbelow(n) генерирует случайноецелоечисло в пределах от 0 до n. - secrets.randbits(n) создает целоечисло из n случайных бит. - secrets.token_bytes(n) выдает случайнуюпоследовательностьбайт длиной в n байт. - token_hex(n) предоставляет случайнуюстроку из n байт, преобразованную в шестнадцатеричный формат. - token_urlsafe(n) генерирует URL-безопасную строку длиной в n байт, закодированную в Base64. Также, в модуле присутствует класс SystemRandom, поддерживающий большинство методов модуля random. #python#secrets#random
Использование Docker вместе с Python Docker - это платформа для разработки, доставки и запуска приложений в контейнерах. Контейнеры позволяют упаковать ваше приложение со всем его окружением и зависимостями в одинкомпактный исполняемый пакет. Это обеспечивает его быстрыйзапуск и согласованную работу в любой среде. Зачем его использовать? - Упрощениенастройкисреды: Docker избавляет от фразы "у меня работает, а у тебя нет". Все необходимые зависимости, библиотеки и окружение можно упаковать в контейнер, который будет работать одинаково на любой машине. - Быстрая доставка и развертывание: С Docker вы можете легко и быстро развернуть своё приложение в любой среде, будь то облачная платформа или локальный сервер. - Изоляция приложений: Каждое приложение работает в своем контейнере, не влияя на работу других приложений и системы в целом. #python#docker