Модуль pickle
Модуль pickle постоянно хранит данные в одном файле. Представление объекта всегда байтовое, поэтому для хранения данных необходимо открывать файлы в wb, для загрузки данных из pickle - в rb. Данные могут быть любого типа.
#практика
Модуль pickle постоянно хранит данные в одном файле. Представление объекта всегда байтовое, поэтому для хранения данных необходимо открывать файлы в wb, для загрузки данных из pickle - в rb. Данные могут быть любого типа.
#практика
🔥3
Matplotlib
Библиотека matplotlib позволяет строить графики в стиле MATLAB. В данном примере продемонстрирован базовый функционал: постройка графика, отображение ключевых точек, смена цвета, наименование графика и его осей.
#практика
Библиотека matplotlib позволяет строить графики в стиле MATLAB. В данном примере продемонстрирован базовый функционал: постройка графика, отображение ключевых точек, смена цвета, наименование графика и его осей.
#практика
🔥4
Перехват нескольких исключений
Если ты хочешь обрабатывать разные исключения по-разному, ты можешь предоставить отдельный блок исключений для каждого типа. В этом примере мы перехватываем KeyError и AttributeError, но обрабатываем исключения по-разному. Если же хочешь обрабатывать разные исключения одинаково, объедини их в один except.
#практика
Если ты хочешь обрабатывать разные исключения по-разному, ты можешь предоставить отдельный блок исключений для каждого типа. В этом примере мы перехватываем KeyError и AttributeError, но обрабатываем исключения по-разному. Если же хочешь обрабатывать разные исключения одинаково, объедини их в один except.
#практика
👍2🔥1
Модуль shelve
Shelve — это модуль Python, используемый для хранения объектов в файле. Он реализует постоянное хранилище для произвольных объектов Python, которые можно преобразовать в поток байтов с помощью API, похожего на словарь. Модуль shelve можно использовать в качестве простого варианта постоянного хранилища для объектов Python, когда реляционная база данных будет лишней. Доступ к shelve осуществляется с помощью ключей, как и к словарю.
#практика
Shelve — это модуль Python, используемый для хранения объектов в файле. Он реализует постоянное хранилище для произвольных объектов Python, которые можно преобразовать в поток байтов с помощью API, похожего на словарь. Модуль shelve можно использовать в качестве простого варианта постоянного хранилища для объектов Python, когда реляционная база данных будет лишней. Доступ к shelve осуществляется с помощью ключей, как и к словарю.
#практика
👍1
Вычисление больших целых корней
Несмотря на то, что Python изначально поддерживает большие целые числа, извлечение n-го корня из очень больших чисел может привести к ошибке. В таком случае стоит воспользоваться бинарным поиском. В коде приведен пример, как это сделать.
#практика
Несмотря на то, что Python изначально поддерживает большие целые числа, извлечение n-го корня из очень больших чисел может привести к ошибке. В таком случае стоит воспользоваться бинарным поиском. В коде приведен пример, как это сделать.
#практика
Корутины
Генераторы можно использовать для реализации корутин. Корутины обычно используются для реализации конечных автоматов. Они полезны для создания процедур с одним методом, которые требуют, чтобы состояние функционировало должным образом. Они работают с существующим состоянием и возвращают значение, полученное по завершении операции.
#практика
Генераторы можно использовать для реализации корутин. Корутины обычно используются для реализации конечных автоматов. Они полезны для создания процедур с одним методом, которые требуют, чтобы состояние функционировало должным образом. Они работают с существующим состоянием и возвращают значение, полученное по завершении операции.
#практика
👍2
Хэширование файлов
Хэш — это функция, которая преобразует последовательность байтов переменной длины в последовательность фиксированной длины. Хеширование файлов может быть выгодным по многим причинам. Хэши можно использовать для проверки идентичности двух файлов или проверки того, что содержимое файла не было повреждено или изменено.
#практика
Хэш — это функция, которая преобразует последовательность байтов переменной длины в последовательность фиксированной длины. Хеширование файлов может быть выгодным по многим причинам. Хэши можно использовать для проверки идентичности двух файлов или проверки того, что содержимое файла не было повреждено или изменено.
#практика
Модуль re: группировка
Группировка осуществляется с помощью скобок. Вызов group() возвращает строку, состоящую из соответствующих подгрупп в скобках. Можно передавать аргументы для получения конкретной группы. Если есть один аргумент, результатом будет одна строка; если имеется несколько аргументов, результатом является кортеж с одним элементом на аргумент. Вызов groups() возвращает список кортежей, содержащих подгруппы.
#практика
Группировка осуществляется с помощью скобок. Вызов group() возвращает строку, состоящую из соответствующих подгрупп в скобках. Можно передавать аргументы для получения конкретной группы. Если есть один аргумент, результатом будет одна строка; если имеется несколько аргументов, результатом является кортеж с одним элементом на аргумент. Вызов groups() возвращает список кортежей, содержащих подгруппы.
#практика
👍1
Проверка символов
С помощью модуля re ты можешь сделать проверку на допустимые символы. В данном примере мы разрешаем использование заглавных и прописных букв английского языка, цифры. При необходимости ты можешь адаптировать разрешенные символы. Например, выражение [^a-z0-9.] указывает на запрет заглавных букв.
#практика
С помощью модуля re ты можешь сделать проверку на допустимые символы. В данном примере мы разрешаем использование заглавных и прописных букв английского языка, цифры. При необходимости ты можешь адаптировать разрешенные символы. Например, выражение [^a-z0-9.] указывает на запрет заглавных букв.
#практика
contextlib.contextmanager
С помощью contextlib.contextmanager можно написать диспетчер контекста, используя синтаксис генератора. Если диспетчеру контекста необходимо обработать исключение, в генераторе может быть записан блок try..except..finally. Любое исключение, вызванное в блоке with, будет обрабатываться этим блоком исключений. Данный код выведет в столбик Enter, Dividing by cm = 0, Caught error, Cleaning up, Exit.
#практика
С помощью contextlib.contextmanager можно написать диспетчер контекста, используя синтаксис генератора. Если диспетчеру контекста необходимо обработать исключение, в генераторе может быть записан блок try..except..finally. Любое исключение, вызванное в блоке with, будет обрабатываться этим блоком исключений. Данный код выведет в столбик Enter, Dividing by cm = 0, Caught error, Cleaning up, Exit.
#практика
zip_longest
Когда ты используешь zip, zip перестанет объединять итерации, как только в одном из них закончатся элементы. Если другие итерации длиннее, лишние элементы просто выбрасываются. itertools zip longest продолжит итерацию после окончания более короткой из двух итераций. Тогда на месте пустых значений будет выводиться None.
#практика
Когда ты используешь zip, zip перестанет объединять итерации, как только в одном из них закончатся элементы. Если другие итерации длиннее, лишние элементы просто выбрасываются. itertools zip longest продолжит итерацию после окончания более короткой из двух итераций. Тогда на месте пустых значений будет выводиться None.
#практика
nlargest/nsmallest
Для поиска некоторого количества (более одного) наибольших или наименьших значений итерации ты можешь использовать nlargest и nsmalest модуля heapq. Это намного эффективнее, чем сортировка всей итерации. Внутри эти функции используют структуру данных очереди приоритетов двоичной кучи, которая очень эффективна для этого примера.
#практика
Для поиска некоторого количества (более одного) наибольших или наименьших значений итерации ты можешь использовать nlargest и nsmalest модуля heapq. Это намного эффективнее, чем сортировка всей итерации. Внутри эти функции используют структуру данных очереди приоритетов двоичной кучи, которая очень эффективна для этого примера.
#практика
Запуск двух процессов
Простым примером использования нескольких процессов могут быть два процесса, которые выполняются отдельно. В этом примере запускаются два процесса: countUp() отсчитывает единицу вверх каждую секунду, countdown() – единицу вниз каждую секунду.
#практика
Простым примером использования нескольких процессов могут быть два процесса, которые выполняются отдельно. В этом примере запускаются два процесса: countUp() отсчитывает единицу вверх каждую секунду, countdown() – единицу вниз каждую секунду.
#практика
👍4
Разделение состояния между потоками
Поскольку все потоки выполняются в одном процессе, все потоки имеют доступ к одним и тем же данным. Однако одновременный доступ к общим данным должен быть защищен блокировкой, чтобы избежать проблем с синхронизацией.
#практика
Поскольку все потоки выполняются в одном процессе, все потоки имеют доступ к одним и тем же данным. Однако одновременный доступ к общим данным должен быть защищен блокировкой, чтобы избежать проблем с синхронизацией.
#практика
Pool
Пул — это класс, который управляет процессами. Pool(5) создает новый пул с 5 процессами. Метод pool map возвращает итератор. Он применяет функцию, предоставленную в качестве входных данных, к каждому элементу входного итерируемого объекта. Поэтому для параллельного выполнения функции с разными входными ты можешь использовать метод pool map(). Аналогичные результаты можно получить с помощью map async, apply и apply async.
#практика
Пул — это класс, который управляет процессами. Pool(5) создает новый пул с 5 процессами. Метод pool map возвращает итератор. Он применяет функцию, предоставленную в качестве входных данных, к каждому элементу входного итерируемого объекта. Поэтому для параллельного выполнения функции с разными входными ты можешь использовать метод pool map(). Аналогичные результаты можно получить с помощью map async, apply и apply async.
#практика
Парсинг скобок
Стеки часто используются для парсинга. Простая задача - проверить, совпадают ли строки скобок. Например, строка ([]) совпадает, потому что внешние и внутренние скобки образуют пары. ()<>) не совпадают, потому что последний символ ) не имеет партнера. ([)] также не совпадают, потому что пары должны быть либо полностью внутри, либо вне других пар.
#практика
Стеки часто используются для парсинга. Простая задача - проверить, совпадают ли строки скобок. Например, строка ([]) совпадает, потому что внешние и внутренние скобки образуют пары. ()<>) не совпадают, потому что последний символ ) не имеет партнера. ([)] также не совпадают, потому что пары должны быть либо полностью внутри, либо вне других пар.
#практика
Настраиваемые классы
В Python 3.6 был добавлен специальный метод init subclass, который упрощает и расширяет настройку класса без использования метаклассов. Это позволяет создавать простые плагины. Таким образом уменьшается вероятность конфликтов метаклассов, упрощает наследование.
#практика
В Python 3.6 был добавлен специальный метод init subclass, который упрощает и расширяет настройку класса без использования метаклассов. Это позволяет создавать простые плагины. Таким образом уменьшается вероятность конфликтов метаклассов, упрощает наследование.
#практика
сonfigparser
Этот модуль предоставляет класс ConfigParser, который реализует базовый язык конфигурации в файлах INI. Ты можешь использовать это для написания программ Python, которые могут быть легко настроены пользователями. Файл конфигурации содержит разделы, каждый раздел содержит ключи и значения. Модуль configparser можно использовать для чтения и записи конфигурационных файлов.
#практика
Этот модуль предоставляет класс ConfigParser, который реализует базовый язык конфигурации в файлах INI. Ты можешь использовать это для написания программ Python, которые могут быть легко настроены пользователями. Файл конфигурации содержит разделы, каждый раздел содержит ключи и значения. Модуль configparser можно использовать для чтения и записи конфигурационных файлов.
#практика
Оптическое распознавание символов
Оптическое распознавание символов преобразует изображения текста в реальный текст. Python-tesseract – оболочка для Google Tesseract-OCR Engine. Этот инструмент также полезен в качестве автономного сценария вызова для tesseract, поскольку он может читать все типы изображений, включая jpeg, png, gif, bmp, tiff и другие.
#практика
Оптическое распознавание символов преобразует изображения текста в реальный текст. Python-tesseract – оболочка для Google Tesseract-OCR Engine. Этот инструмент также полезен в качестве автономного сценария вызова для tesseract, поскольку он может читать все типы изображений, включая jpeg, png, gif, bmp, tiff и другие.
#практика