Простой 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
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 служат той же цели, что и
перегрузка операторов на других языках. Они позволяют классу определять свое поведение, когда он используется в качестве операнда в выражениях унарных или бинарных операторов. Они также служат реализациями, вызываемыми некоторыми встроенными функциями. В коде приведен пример реализации двумерных векторов.

#практика
Нереализованное поведение

Если твой класс не реализует конкретный перегруженный оператор для предоставленных типов аргументов, он должен возвращать NotImplemented. Это позволит Python вернуться к другим методам, чтобы заставить операцию работать. Например, при заданном x + y, если x.add(y) возвращает нереализованное значение, вместо него выполняется y.radd(x).

#практика
Переопределение

Когда ты наследуешь от класса со свойством, ты можешь предоставить новую реализацию для одной или нескольких функций свойств getters, setters или deleter свойств, ссылаясь на объект свойства в родительском классе. Также можешь добавить getter или setter там, где раньше их не было в базовом классе.

#практика
Ключевой аргумент

В Python возможно нахождение минимума/максимума последовательности последовательностей. Если ты хочешь сортировать по определенному элементу в каждой последовательности, используй ключевой аргумент. В коде показано, как это можно сделать с помощью лямбды и модуля operator.

#практика
functools total ordering

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

#практика
Минимум/максимум последовательности

Получение минимума последовательности эквивалентно доступу к первому элементу отсортированной последовательности. Максимум немного сложнее. sorted сохраняет порядок, а max возвращает первое встреченное значение. В случае отсутствия дубликатов максимальное значение совпадает с последним элементом отсортированного возврата. Это не так, если есть несколько элементов, которые оцениваются как имеющие максимальное значение.

#практика
😁1
Поиск вложенных последовательностей

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

#практика
reduce

Функция reduce уменьшает итерируемый объект, многократно применяя функцию к следующему элементу итерируемого объекта и совокупному результату на данный момент. В Python 2 эта функция доступна как встроенная. В Python 3 она перемещена в модуль functools.

#практика
Последовательность Фибоначчи

Практический вариант использования генератора — перебор значений бесконечного ряда. В данном коде приведен пример нахождения первых десяти членов последовательности Фибоначчи. Чтобы вывести другое количество членов последовательности, измени параметр range.

#практика