Простой Python | Программирование
141K subscribers
2.36K photos
48 videos
1.36K links
Заявки принимаются автоматически.
Лучший образовательный канал по Python.

По всем вопросам: @dimaa_dimaa (реклама)

Ссылка на канал: https://t.me/+T1i5nO0m_h01ZDky
.
РКН: https://vk.cc/cJ5box
Помощь:https://telega.in/c/+T1i5nO0m_h01ZDky
Download Telegram
Хэширование файлов

Хэш — это функция, которая преобразует последовательность байтов переменной длины в последовательность фиксированной длины. Хеширование файлов может быть выгодным по многим причинам. Хэши можно использовать для проверки идентичности двух файлов или проверки того, что содержимое файла не было повреждено или изменено.

#практика
Модуль re: группировка

Группировка осуществляется с помощью скобок. Вызов group() возвращает строку, состоящую из соответствующих подгрупп в скобках. Можно передавать аргументы для получения конкретной группы. Если есть один аргумент, результатом будет одна строка; если имеется несколько аргументов, результатом является кортеж с одним элементом на аргумент. Вызов groups() возвращает список кортежей, содержащих подгруппы.

#практика
👍1
Проверка символов

С помощью модуля re ты можешь сделать проверку на допустимые символы. В данном примере мы разрешаем использование заглавных и прописных букв английского языка, цифры. При необходимости ты можешь адаптировать разрешенные символы. Например, выражение [^a-z0-9.] указывает на запрет заглавных букв.

#практика
contextlib.contextmanager

С помощью contextlib.contextmanager можно написать диспетчер контекста, используя синтаксис генератора. Если диспетчеру контекста необходимо обработать исключение, в генераторе может быть записан блок try..except..finally. Любое исключение, вызванное в блоке with, будет обрабатываться этим блоком исключений. Данный код выведет в столбик Enter, Dividing by cm = 0, Caught error, Cleaning up, Exit.

#практика
zip_longest

Когда ты используешь zip, zip перестанет объединять итерации, как только в одном из них закончатся элементы. Если другие итерации длиннее, лишние элементы просто выбрасываются. itertools zip longest продолжит итерацию после окончания более короткой из двух итераций. Тогда на месте пустых значений будет выводиться None.

#практика
nlargest/nsmallest

Для поиска некоторого количества (более одного) наибольших или наименьших значений итерации ты можешь использовать nlargest и nsmalest модуля heapq. Это намного эффективнее, чем сортировка всей итерации. Внутри эти функции используют структуру данных очереди приоритетов двоичной кучи, которая очень эффективна для этого примера.

#практика
Запуск двух процессов

Простым примером использования нескольких процессов могут быть два процесса, которые выполняются отдельно. В этом примере запускаются два процесса: countUp() отсчитывает единицу вверх каждую секунду, countdown() – единицу вниз каждую секунду.

#практика
👍4
Разделение состояния между потоками

Поскольку все потоки выполняются в одном процессе, все потоки имеют доступ к одним и тем же данным. Однако одновременный доступ к общим данным должен быть защищен блокировкой, чтобы избежать проблем с синхронизацией.

#практика
Pool

Пул — это класс, который управляет процессами. Pool(5) создает новый пул с 5 процессами. Метод pool map возвращает итератор. Он применяет функцию, предоставленную в качестве входных данных, к каждому элементу входного итерируемого объекта. Поэтому для параллельного выполнения функции с разными входными ты можешь использовать метод pool map(). Аналогичные результаты можно получить с помощью map async, apply и apply async.

#практика
Парсинг скобок

Стеки часто используются для парсинга. Простая задача - проверить, совпадают ли строки скобок. Например, строка ([]) совпадает, потому что внешние и внутренние скобки образуют пары. ()<>) не совпадают, потому что последний символ ) не имеет партнера. ([)] также не совпадают, потому что пары должны быть либо полностью внутри, либо вне других пар.

#практика
Настраиваемые классы

В Python 3.6 был добавлен специальный метод init subclass, который упрощает и расширяет настройку класса без использования метаклассов. Это позволяет создавать простые плагины. Таким образом уменьшается вероятность конфликтов метаклассов, упрощает наследование.

#практика
сonfigparser

Этот модуль предоставляет класс ConfigParser, который реализует базовый язык конфигурации в файлах INI. Ты можешь использовать это для написания программ Python, которые могут быть легко настроены пользователями. Файл конфигурации содержит разделы, каждый раздел содержит ключи и значения. Модуль configparser можно использовать для чтения и записи конфигурационных файлов.

#практика
Оптическое распознавание символов

Оптическое распознавание символов преобразует изображения текста в реальный текст. Python-tesseract – оболочка для Google Tesseract-OCR Engine. Этот инструмент также полезен в качестве автономного сценария вызова для tesseract, поскольку он может читать все типы изображений, включая jpeg, png, gif, bmp, tiff и другие.

#практика
Генерация RSA-подписей

RSA можно использовать для создания подписи сообщения. Действительная подпись может быть сгенерирована только при доступе к закрытому ключу RSA. Проверка возможна благодаря соответствующему открытому ключу. Поэтому, пока другая сторона знает твой открытый ключ, она может проверить, что сообщение подписано тобой и не изменено.

#практика
Исходный код объекта

Чтобы вывести исходный код объекта Python, используй inspect. Обрати внимание, что это не будет работать ни для встроенных объектов, ни для объектов, определенных в интерактивном режиме. Для этого тебе понадобятся другие методы. На картинке приведен пример, как вывести исходный код метода randint из модуля random.

#практика
Интроспекция

Интроспекция – это акт самоанализа. В компьютерном программировании самоанализ — это способность определять тип или свойства объектов во время выполнения. Интроспекция кода используется для изучения классов, методов, объектов, модулей, ключевых слов и получения информации о них, чтобы ты мог ее использовать.

#практика
Модуль logging

Этот модуль определяет функции и классы, которые реализуют гибкую систему регистрации событий для приложений и библиотек. Ключевое преимуществом наличия API-интерфейса ведения журнала - все модули Python могут участвовать в ведении журнала. Таким образом журнал твоего приложения может включать твои собственные сообщения, интегрированные с сообщениями из сторонних модулей.

#практика
Получение данных по UDP

UDP — это протокол без установления соединения. Это означает, что одноранговые узлы, отправляющие сообщения, не требуют установления соединения перед отправкой сообщений. socket.recvfrom таким образом возвращает кортеж (msg [сообщение, полученное сокетом], addr [адрес отправителя]). По умолчанию сокеты блокируются. Это означает, что выполнение скрипта будет ждать, пока сокет не получит данные.

#практика
Magic/Dunder

Волшебные методы (также называемые dunder) в Python служат той же цели, что и
перегрузка операторов на других языках. Они позволяют классу определять свое поведение, когда он используется в качестве операнда в выражениях унарных или бинарных операторов. Они также служат реализациями, вызываемыми некоторыми встроенными функциями. В коде приведен пример реализации двумерных векторов.

#практика