Работа с ip адресами
Если вам приходится писать на Python программы для работы с сетью — это значит, что вам может очень пригодиться модуль
Одним из вариантов его использования является генерация списка IP-адресов из диапазона адресов, заданных в формате CIDR (Classless Inter-Domain Routing, или бесклассовая адресация).
Кстати, у модуля
#ipaddress
Если вам приходится писать на Python программы для работы с сетью — это значит, что вам может очень пригодиться модуль
ipaddress
.Одним из вариантов его использования является генерация списка IP-адресов из диапазона адресов, заданных в формате CIDR (Classless Inter-Domain Routing, или бесклассовая адресация).
Кстати, у модуля
ipaddress
есть и много других интересных возможностей, прочитать о которых можно здесь.#ipaddress
Работаем с USB
Основные методы для работы с
Пакет
Функция
Также есть реализация внешнего и внутреннего интерфейса, для изоляции
#python #PyUSB
PyUSB
— это библиотека, которая обеспечивает легкий доступ к USB
. Имеет поддержку изохронной передачи, если её поддерживает бэкенд.Основные методы для работы с
USB
, такие как find()
, show_devices()
и т. д, хранятся в usb.core
.Пакет
usb.util
содержит вспомогательные функции.Функция
find()
используется для поиска устройств, подключенных к системе.Также есть реализация внешнего и внутреннего интерфейса, для изоляции
API
от деталей реализации системы. Связующим звеном между двумя слоями является интерфейс IBackend
. PyUSB
поставляется со встроенными бэкэндами для libusb 1.0,
libusb 0.1
и OpenUSB
.#python #PyUSB
Возвращаем значение по указанному ключу с помощью метода setdefault()
Метод
Метод
— Ключ, по которому необходимо получить значение.
— Значение по умолчанию, которое будет добавлено в словарь, если ключ отсутствует.
Если ключ присутствует в словаре, метод возвращает значение, связанное с этим ключом. Если ключ отсутствует в словаре, метод добавляет ключ в словарь со значением по умолчанию, а затем возвращает это значение.
Метод
setdefault()
в Python возвращает значение по указанному ключу из словаря. Если ключ отсутствует в словаре, метод добавляет ключ в словарь со значением по умолчанию, а затем возвращает это значение.Метод
setdefault()
имеет два параметра:— Ключ, по которому необходимо получить значение.
— Значение по умолчанию, которое будет добавлено в словарь, если ключ отсутствует.
Если ключ присутствует в словаре, метод возвращает значение, связанное с этим ключом. Если ключ отсутствует в словаре, метод добавляет ключ в словарь со значением по умолчанию, а затем возвращает это значение.
Работаем с файловыми путями
В стандартной библиотеке есть максимально удобный пакет
Для представления пути к файлу есть класс
Но самой классной фичей является замена
Итого, пакет
#pathlib
В стандартной библиотеке есть максимально удобный пакет
pathlib
для простой работы с файловыми путями. Для представления пути к файлу есть класс
Path
, с объектами которого уже можно производить операции. Например, методы exists()
и is_dir()
проверяют, существует ли файл и является ли он директорией. Но самой классной фичей является замена
os.path.join()
на более удобный и элегантный вариант с использованием слэшей, как показано на картинке. Итого, пакет
pathlib
может стать частичной заменой os
в некоторых случаях при работе с файловыми путями. #pathlib
Делаем ошибки более читаемыми
В
Установить его можно через пакетный менеджер
Как результат, вывод ошибок в вашей программе будет выглядеть более читаемым. Более того, разные части вывода будут помечаться разным цветом вместо монотонного серого цвета.
Также модуль можно модифицировать, указав параметры в конфиге. Подробнее можете почитать в документации модуля.
#python #pretty_errors
В
Python
есть удобный модуль pretty_errors
, который делает стандартный вывод исключений и их traceback
более удобным для чтения и красивым в целом. Установить его можно через пакетный менеджер
pip
. А для того, чтобы он заработал, достаточно импортировать его в ваш код. Как результат, вывод ошибок в вашей программе будет выглядеть более читаемым. Более того, разные части вывода будут помечаться разным цветом вместо монотонного серого цвета.
Также модуль можно модифицировать, указав параметры в конфиге. Подробнее можете почитать в документации модуля.
#python #pretty_errors
Форматируем строку для URL-адреса
Для начала стоит вспомнить, что слаг (slug) — это уникальная строка-идентификатор, понятная человеку и содержащая только "безопасные" символы: латинские символы в нижнем регистре, цифры и дефис.
Чаще всего такое понятие можно встретить в контексте URL-адресов. Например, можно формировать слаг из названия какой-нибудь статьи и вставлять его в ссылку, чтобы людям было понятно, куда они переходят.
Выше в коде мы написали простую функцию, где использовали методы
Также для удаления некоторых символов и замены на знак дефиса были использованы регулярные выражения и встроенный пакет
#python #re
Для начала стоит вспомнить, что слаг (slug) — это уникальная строка-идентификатор, понятная человеку и содержащая только "безопасные" символы: латинские символы в нижнем регистре, цифры и дефис.
Чаще всего такое понятие можно встретить в контексте URL-адресов. Например, можно формировать слаг из названия какой-нибудь статьи и вставлять его в ссылку, чтобы людям было понятно, куда они переходят.
Выше в коде мы написали простую функцию, где использовали методы
lower()
для приведения в нижний регистр и strip()
для удаления пробелов слева и справа. Также для удаления некоторых символов и замены на знак дефиса были использованы регулярные выражения и встроенный пакет
re
для работы с ними. #python #re
Тестирование на pytest
Но при разработке на
Также он поддерживает запуск тестов на
#python #pytest #assert
pytest
— ближе по духу к языку Python
нежели unittest
, которая накладывает определенные обязательства при разработке тестов. Например, создание классов-наследников от TestCase или выполнение определенной процедуры запуска тестов. Но при разработке на
pytest
ничего этого делать не нужно. Вы просто пишете функции, которые должны начинаться с "test_" и используете assert, встроенные в Python
. Также он поддерживает запуск тестов на
unittest
и nose
, то есть полная обратная совместимость с ними.#python #pytest #assert
dict.get()
Синтаксис метода
#python
dict.get()
— это метод словаря, который используется для получения значения по заданному ключу. Однако, в отличие от обращения к элементу словаря с использованием квадратных скобок (dict[key]
), метод get()
предоставляет дополнительную возможность задать значение по умолчанию, которое будет возвращено, если ключ не найден в словаре.Синтаксис метода
get()
выглядит так:value = dict.get(key, default)
key
: Ключ, по которому производится поиск в словаре.default
(необязательный): Значение, которое будет возвращено, если ключ не найден в словаре. Если default
не указан, и ключ не найден, метод вернет None
.#python
Работаем с картинками в Python
Библиотека Pillow — это очень мощный, быстрый и удобный инструмент для обработки графики в Python.
В сегодняшнем примере мы применим ее для конвертации картинки в черно-белую, обратим цвета, вертикально отзеркалим и сохраним в файл.
Метод
Больше официальных примеров и документацию можно посмотреть тут.
Пример можно посмотреть тут.
#pillow
Библиотека Pillow — это очень мощный, быстрый и удобный инструмент для обработки графики в Python.
В сегодняшнем примере мы применим ее для конвертации картинки в черно-белую, обратим цвета, вертикально отзеркалим и сохраним в файл.
Метод
Image.open('resources/img/cat.jpg')
считывает картинку из папки. img.convert('L')
трансформирует картинку в черно-белую. ImageOps.invert(image)
обращает цвета. img.transpose(Image.FLIP_LEFT_RIGHT)
вертикально отзеркаливает картинку. img.save('grayscale_cat.jpg')
сохранит картинку на диске. Больше официальных примеров и документацию можно посмотреть тут.
Пример можно посмотреть тут.
#pillow
Функция math.perm()
Он требует указания двух параметров:
Пример использования: расчет количества перестановок трех элементов из пяти. Это демонстрирует, сколько существует вариантов формирования трехэлементных подмножеств из пятерки.
#python
math.perm()
используется для определения количества возможных способов выбора и расположения m элементов из набора n элементов. Этот метод включен в модуль math
.Он требует указания двух параметров:
n
— общее число элементов в наборе, и m
— число элементов в каждой возможной выборке. Результатом выполнения функции является целочисленное значение, представляющее число таких перестановок. Если n
меньше m
, функция возвратит 0.Пример использования: расчет количества перестановок трех элементов из пяти. Это демонстрирует, сколько существует вариантов формирования трехэлементных подмножеств из пятерки.
#python
Хотите попробовать себя в роли аналитика и попрактиковаться на реальных задачах?
Приходите на бесплатный курс-симулятор Нетологии и Yandex Cloud «Основы анализа данных в SQL, Python, Power BI, DataLens».
В этой профессии много разных направлений — аналитик данных, BI-аналитик, продуктовый аналитик, Data Scientist. Но везде пригодится навык работы с инструментами-помощниками, которые вы и освоите на курсе.
Эксперты-практики расскажут, как делать простые отчёты, исследовать данные и строить интерактивные дашборды. А чтобы понять, что анализ данных — это точно ваше, вместе решите практические задачи из реальных кейсов.
Воспользуйтесь шансом попробовать новые инструменты и запишитесь на бесплатный курс Нетологии.
Регистрация: https://netolo.gy/c3Xk
Реклама. ООО "Нетология" LatgBcJFo
Приходите на бесплатный курс-симулятор Нетологии и Yandex Cloud «Основы анализа данных в SQL, Python, Power BI, DataLens».
В этой профессии много разных направлений — аналитик данных, BI-аналитик, продуктовый аналитик, Data Scientist. Но везде пригодится навык работы с инструментами-помощниками, которые вы и освоите на курсе.
Эксперты-практики расскажут, как делать простые отчёты, исследовать данные и строить интерактивные дашборды. А чтобы понять, что анализ данных — это точно ваше, вместе решите практические задачи из реальных кейсов.
Воспользуйтесь шансом попробовать новые инструменты и запишитесь на бесплатный курс Нетологии.
Регистрация: https://netolo.gy/c3Xk
Реклама. ООО "Нетология" LatgBcJFo
Важное про цифры и Юникод
0, 1, 2, 3, 4, 5, 6, 7, 8, 9 — не единственные символы, которые считаются цифрами.
Это крайне важно знать, потому что эти символы влияют на такие функции, как
Думаю, в один момент это знание сэкономит вам время на исправление "бага" с такими странными символами. Предупрежден — значит вооружен.
#python #unicode
0, 1, 2, 3, 4, 5, 6, 7, 8, 9 — не единственные символы, которые считаются цифрами.
Python
следует правилам Юникода и обрабатывает несколько сотен символов как цифры. Полный список находится здесь.Это крайне важно знать, потому что эти символы влияют на такие функции, как
int
, unicode.isdecimal
и даже re.match
.Думаю, в один момент это знание сэкономит вам время на исправление "бага" с такими странными символами. Предупрежден — значит вооружен.
#python #unicode
Включаем предупреждения об ошибках или исключениях с помощью модуля warnings
Модуль
Модуль
#python
Модуль
warnings
предоставляет возможность управления предупреждениями, которые могут быть выведены во время выполнения программы.Модуль
warnings
полезен, когда необходимо предупредить пользователя о каком-либо условии в программе и это условие не требует создания исключения и завершения программы.#python
Больше выгодных предложений для самозанятых
Если вы уже самозанятый или только планируете оформиться, то выгоднее всего сейчас вести самозанятость в СберБанк Онлайн.
▪️Сервис полностью бесплатный
▪️В сервисе доступны бесплатные полезные услуги, например, онлайн-запись клиентов
▪️Для самозанятых в Сбере ставка на кредиты ниже на 1%
Кстати, подключить сервис и пользоваться всеми привилегиями могут даже те, кто уже оформил ведет самозанятость в ФНС или других банках. Данные синхронизируются с ФНС, и вы сможете продолжить вести дела в СберБанк Онлайн.
Если вы подключитесь к сервису для самозанятых до 30 апреля, то сможете поучаствовать в розыгрыше 16 миллионов бонусов. Более подробную информацию можно найти здесь.
Если вы уже самозанятый или только планируете оформиться, то выгоднее всего сейчас вести самозанятость в СберБанк Онлайн.
▪️Сервис полностью бесплатный
▪️В сервисе доступны бесплатные полезные услуги, например, онлайн-запись клиентов
▪️Для самозанятых в Сбере ставка на кредиты ниже на 1%
Кстати, подключить сервис и пользоваться всеми привилегиями могут даже те, кто уже оформил ведет самозанятость в ФНС или других банках. Данные синхронизируются с ФНС, и вы сможете продолжить вести дела в СберБанк Онлайн.
Если вы подключитесь к сервису для самозанятых до 30 апреля, то сможете поучаствовать в розыгрыше 16 миллионов бонусов. Более подробную информацию можно найти здесь.
Cравнение 2 аудиосообщений с помощью библиотеки для анализа звука
В библиотеку для анализа звука, например, librosa или PyAudio мы загружаем два файла и вычисляем их характеристики MFCC (Mel Frequency Cepstral Coefficients), которые представляют собой набор коэффициентов, описывающих звуковое пространство. Затем мы вычисляем расстояние между характеристиками с помощью функции dtln из librosa.core. Результат будет выведен в консоль.
Обратите внимание, что для сравнения аудиосообщений нужно, чтобы они имели одинаковую продолжительность и были записаны в одинаковых условиях (например, громкость, обработка шума).
#python
В библиотеку для анализа звука, например, librosa или PyAudio мы загружаем два файла и вычисляем их характеристики MFCC (Mel Frequency Cepstral Coefficients), которые представляют собой набор коэффициентов, описывающих звуковое пространство. Затем мы вычисляем расстояние между характеристиками с помощью функции dtln из librosa.core. Результат будет выведен в консоль.
Обратите внимание, что для сравнения аудиосообщений нужно, чтобы они имели одинаковую продолжительность и были записаны в одинаковых условиях (например, громкость, обработка шума).
#python
Перебираем все возможные 8 значные пароли состоящие из букв и цифр с помощью Python
В этом примере используется модуль
Обратите внимание, что перебор всех возможных 8-значных паролей может занять большое количество времени, особенно если количество символов в
#python #itertools
В этом примере используется модуль
itertools
, который позволяет генерировать все возможные комбинации символов из списка characters
длиной password_length
. Затем перебираются все комбинации и выводятся на экран.Обратите внимание, что перебор всех возможных 8-значных паролей может занять большое количество времени, особенно если количество символов в
characters
большое. Будьте осторожны и убедитесь, что ваше намерение соответствует законам и этическим правилам.#python #itertools
Библиотека setuptools
Библиотека
#python #setuptools
Библиотека
setuptools
является инструментом для упрощения процесса создания, установки и распространения пакетов Python. Она используется в основном для упрощения установки и управления зависимостями Python-пакетов.
setuptools
предоставляет функциональность для создания файлов setup.py
, которые содержат информацию о вашем пакете, его зависимостях и других метаданных. Этот файл используется инструментами для установки пакетов, такими как pip
.#python #setuptools
27 и 28 апреля приглашаем специалистов робототехники и reinforcement learning на ROS Meetup в Москве 📅
Это возможность для робототехников всех уровней: от новичков до экспертов, — посвятить выходные практическому обучению и нетворкингу. Вы получите советы и рекомендации экспертов, сможете поделиться идеями с другими разработчиками. Доклады охватывают весь спектр тем: от ROS до reinforcement learning и антропоморфных роботов.
Инженеры и руководители компаний поделятся реальным опытом использования ROS в исследовательских и коммерческих проектах.
В этот раз мы решили разбавить технические доклады большим количеством тематических дискуссий и нетворкинга.
На какие темы будем общаться:
✔️ Антропоморфные роботы
✔️ Reinforcement learning
✔️ LLM — large language mode, Deep learning
✔️ Беспилотные автомобили и мобильные роботы
✔️ Манипуляторы и алгоритмы в манипуляции, в том числе MOVEit
✔️ ROS-пакеты и другие темы в робототехнике
Локация: г. Москва, Кутузовский проспект 32к1, офис Сбера.
Регистрируйтесь по ссылке 👈
Это возможность для робототехников всех уровней: от новичков до экспертов, — посвятить выходные практическому обучению и нетворкингу. Вы получите советы и рекомендации экспертов, сможете поделиться идеями с другими разработчиками. Доклады охватывают весь спектр тем: от ROS до reinforcement learning и антропоморфных роботов.
Инженеры и руководители компаний поделятся реальным опытом использования ROS в исследовательских и коммерческих проектах.
В этот раз мы решили разбавить технические доклады большим количеством тематических дискуссий и нетворкинга.
На какие темы будем общаться:
✔️ Антропоморфные роботы
✔️ Reinforcement learning
✔️ LLM — large language mode, Deep learning
✔️ Беспилотные автомобили и мобильные роботы
✔️ Манипуляторы и алгоритмы в манипуляции, в том числе MOVEit
✔️ ROS-пакеты и другие темы в робототехнике
Локация: г. Москва, Кутузовский проспект 32к1, офис Сбера.
Регистрируйтесь по ссылке 👈