Модуль cmath
Модуль cmath включает дополнительные функции для работы с комплексными числами. С помощью этого модуля можно вычислить фазу комплексного числа в радианах, преобразовать комплексное число в декартовую или полярную систему координат.
#практика
Модуль cmath включает дополнительные функции для работы с комплексными числами. С помощью этого модуля можно вычислить фазу комплексного числа в радианах, преобразовать комплексное число в декартовую или полярную систему координат.
#практика
itertools.dropwhile
Функция itertools.dropwhile позволяет тебе брать элементы из последовательности после того, как условие впервые становится ложным. В этом коде идет проверка на четность. Первое число, которое нарушает условие – 13. Все числа до него выбрасываются.
#практика
Функция itertools.dropwhile позволяет тебе брать элементы из последовательности после того, как условие впервые становится ложным. В этом коде идет проверка на четность. Первое число, которое нарушает условие – 13. Все числа до него выбрасываются.
#практика
👍1
itertools.takewhile
Функция itertools.takewhile позволяет тебе брать элементы из последовательности до того, как условие впервые становится ложным. В этом коде идет проверка на четность. Первое число, которое нарушает условие – 13. Все числа после него выбрасываются вместе с 13.
#практика
Функция itertools.takewhile позволяет тебе брать элементы из последовательности до того, как условие впервые становится ложным. В этом коде идет проверка на четность. Первое число, которое нарушает условие – 13. Все числа после него выбрасываются вместе с 13.
#практика
Создание рандомного пароля
Чтобы создать рандомный пароль, ты можешь воспользоваться символами, предоставленными в модуле string. punctuation отвечает за знаки пунктуации, ascii letters за буквы, digits – за цифры. После этого объединяем все символы в symbols. Используй random.SystemRandom для создания пароля. В данном примере его длина – 10 символов.
#практика
Чтобы создать рандомный пароль, ты можешь воспользоваться символами, предоставленными в модуле string. punctuation отвечает за знаки пунктуации, ascii letters за буквы, digits – за цифры. После этого объединяем все символы в symbols. Используй random.SystemRandom для создания пароля. В данном примере его длина – 10 символов.
#практика
👍2
shuffle, choice, sample
Ты можешь использовать random.shuffle() для рандомизации элементов в изменяемой и индексируемой последовательности. Метод choice() произвольно выбирает элемент в последовательности. Если тебе нужно выбрать несколько элементов, используй sample().
#практика
Ты можешь использовать random.shuffle() для рандомизации элементов в изменяемой и индексируемой последовательности. Метод choice() произвольно выбирает элемент в последовательности. Если тебе нужно выбрать несколько элементов, используй sample().
#практика
👍6
Модуль mmap
С помощью модуля mmap ты можешь получать доступ к произвольным местоположениям в файле, отображая файл в память. Это альтернатива использованию обычных операций с файлами.
#практика
С помощью модуля mmap ты можешь получать доступ к произвольным местоположениям в файле, отображая файл в память. Это альтернатива использованию обычных операций с файлами.
#практика
Модуль 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
Разделение состояния между потоками
Поскольку все потоки выполняются в одном процессе, все потоки имеют доступ к одним и тем же данным. Однако одновременный доступ к общим данным должен быть защищен блокировкой, чтобы избежать проблем с синхронизацией.
#практика
Поскольку все потоки выполняются в одном процессе, все потоки имеют доступ к одним и тем же данным. Однако одновременный доступ к общим данным должен быть защищен блокировкой, чтобы избежать проблем с синхронизацией.
#практика