Константы пакета string
Встроенный модуль string предоставляет расширенный функционал для работы со строками.
Поговорим про константы этого модуля. Из интересного стоит выделить ascii_letters, punctuation, digits и whitespace — символы ascii, знаки пунктуации, цифры и пробельные символы.
Применение подобных констант может быть не очевидно с первого взгляда. Но подобные значения часто используются, например, в работе с алфавитом или в условном генераторе паролей.
К тому же часто бывает, что разработчики делают костыли и создают свои собственные константы в коде вместо того, чтобы импортировать уже готовые из модуля string.
Встроенный модуль string предоставляет расширенный функционал для работы со строками.
Поговорим про константы этого модуля. Из интересного стоит выделить ascii_letters, punctuation, digits и whitespace — символы ascii, знаки пунктуации, цифры и пробельные символы.
Применение подобных констант может быть не очевидно с первого взгляда. Но подобные значения часто используются, например, в работе с алфавитом или в условном генераторе паролей.
К тому же часто бывает, что разработчики делают костыли и создают свои собственные константы в коде вместо того, чтобы импортировать уже готовые из модуля string.
Метод Counter.most_common()
Возвращает список из n наиболее распространенных элементов и их количество от наиболее распространенных до наименее. Если n опущено или None, метод cnt.most_common() возвращает все элементы в счетчике.
Элементы с равным количеством упорядочены в порядке, в котором они встречаются первыми.
Возвращает список из n наиболее распространенных элементов и их количество от наиболее распространенных до наименее. Если n опущено или None, метод cnt.most_common() возвращает все элементы в счетчике.
Элементы с равным количеством упорядочены в порядке, в котором они встречаются первыми.
🐍 Функции в Python: 5 задач для тренировки *args, **kwargs и lambda-функций
Пишем функции, принимающие *args и **kwargs, находим различия между двумя словарями, применяем анонимные lambda-функции и используем мемоизацию для решения олимпиадной задачи про кубики.
https://proglib.io/p/funkcii-v-python-5-zadach-dlya-trenirovki-args-kwargs-i-lambda-funkciy-2022-06-15
Пишем функции, принимающие *args и **kwargs, находим различия между двумя словарями, применяем анонимные lambda-функции и используем мемоизацию для решения олимпиадной задачи про кубики.
https://proglib.io/p/funkcii-v-python-5-zadach-dlya-trenirovki-args-kwargs-i-lambda-funkciy-2022-06-15
Библиотека программиста
🐍 Функции в Python: 5 задач для тренировки *args, **kwargs и lambda-функций
Пишем функции, принимающие *args и **kwargs, находим различия между двумя словарями, применяем анонимные lambda-функции и используем мемоизацию для решения олимпиадной задачи про кубики.
Моржовый оператор (Walrus Operator)
Cпособ присваивания выражения (
Присваивания с помощью моржа требуется делать в круглых скобках, и перед знаком равно пишется двоеточие. Внутри скобок либо создается новая переменная, либо происходит присвоение значения уже существующий переменной.
Но фишка заключается в том, что вся эта конструкция, скажем так, возвращает присвоенное значение, как это делают обычные функции.
Cпособ присваивания выражения (
:=), или оператор «морж» был самой обсуждаемой функцией, представленной в Python версии 3.8. Новое дополнение к языку было предложено в PEP 572.Присваивания с помощью моржа требуется делать в круглых скобках, и перед знаком равно пишется двоеточие. Внутри скобок либо создается новая переменная, либо происходит присвоение значения уже существующий переменной.
Но фишка заключается в том, что вся эта конструкция, скажем так, возвращает присвоенное значение, как это делают обычные функции.
Завершение программы
Функция
По факту функция просто поднимает исключение
Использовать
Функция
exit создана для удобства работы в интерактивном режиме, но не рекомендуется использовать её внутри скриптов. По факту функция просто поднимает исключение
SystemExit, а при попытке вызова без скобок напишет подсказку о правильном способе выхода из интерпретатора.Использовать
sys.exit() стоит, так как этот метод есть в стандартном модуле и всегда там доступен. А ещё это довольно явный и понятный способ завершения программы.Объединение списков без цикла
Как бы вы решили задачу объединения списков разной длины без обхода элементов цикла? На картинке приведены два варианта – с помощью стандартной функции
Заметим, что при работе с последовательностями многие полезные решения находятся в модулях стандартной библиотеки collections (контейнерные структуры данных) и itertools (операции над последовательностями). Внимательное прочтение документации модулей освободит вас от многих часов придумывания собственных «велосипедов».
Как бы вы решили задачу объединения списков разной длины без обхода элементов цикла? На картинке приведены два варианта – с помощью стандартной функции
sum и применение модуля itertools.Заметим, что при работе с последовательностями многие полезные решения находятся в модулях стандартной библиотеки collections (контейнерные структуры данных) и itertools (операции над последовательностями). Внимательное прочтение документации модулей освободит вас от многих часов придумывания собственных «велосипедов».
Узнаём кодировку текста
Наверное, у всех были ситуации, когда вы открыли файл или получили ответ от сервера, а внутри оказывается набор странных символов в непонятной кодировке.
Пакет chardet как раз был создан для работы с кодировками. Его метод detect выдает предполагаемую кодировку с точностью от 0 до 1.
В примере на картинке мы сделали запрос к серверу, получили ответ, взяли его содержимое и проверили кодировку через метод detect.
Наверное, у всех были ситуации, когда вы открыли файл или получили ответ от сервера, а внутри оказывается набор странных символов в непонятной кодировке.
Пакет chardet как раз был создан для работы с кодировками. Его метод detect выдает предполагаемую кодировку с точностью от 0 до 1.
В примере на картинке мы сделали запрос к серверу, получили ответ, взяли его содержимое и проверили кодировку через метод detect.
Случайный элемент массива
Библиотека random годится не только для генерации случайных чисел, в ней также есть набор функций для множества случайных событий.
Одна из таких — функция choice, позволяющая выбрать случайный элемент итеррируемого объекта. Принимает в качестве аргумента объект последовательности.
Библиотека random годится не только для генерации случайных чисел, в ней также есть набор функций для множества случайных событий.
Одна из таких — функция choice, позволяющая выбрать случайный элемент итеррируемого объекта. Принимает в качестве аргумента объект последовательности.
Генерируем пароли и токены
Модуль secrets используется для генерации криптографически сильных случайных чисел, подходящих для управления такими данными, как пароли, аутентификация учетной записи, токены безопасности и связанные секреты.
В частности, secrets следует использовать по умолчанию вместо генератора псевдослучайных чисел модуля random, который в свою очередь предназначен для моделирования и симуляции, а не для защиты или криптографии.
В нашем примере мы генерируем пароль из 20 символов, который будет состоять из цифр и букв английского алфавита.
Подробнее про модуль secrets можно почитать здесь.
Модуль secrets используется для генерации криптографически сильных случайных чисел, подходящих для управления такими данными, как пароли, аутентификация учетной записи, токены безопасности и связанные секреты.
В частности, secrets следует использовать по умолчанию вместо генератора псевдослучайных чисел модуля random, который в свою очередь предназначен для моделирования и симуляции, а не для защиты или криптографии.
В нашем примере мы генерируем пароль из 20 символов, который будет состоять из цифр и букв английского алфавита.
Подробнее про модуль secrets можно почитать здесь.
Используем примитив синхронизации — мьютекс
Мьютекс позволяет синхронизировать работу нескольких потоков. Это базовый примитив синхронизации. У него есть два состояния — он может быть свободный или заблокированный. Следующий поток не сможет исполнить print() до тех пор, пока мьютекс не будет разблокирован предыдущим.
Мьютекс позволяет синхронизировать работу нескольких потоков. Это базовый примитив синхронизации. У него есть два состояния — он может быть свободный или заблокированный. Следующий поток не сможет исполнить print() до тех пор, пока мьютекс не будет разблокирован предыдущим.
Многопоточность в Python
Многопоточность — концепция программирования, которая позволяет выполнять несколько операций одновременно в разных потоках. Поток — это единичная наименьшая величина выполнения с набором инструкций, является частью процесса.
В Python, как и во многих современных языках программирования есть собственная поддержка многопоточности. Есть две основные библиотеки для организации потоков — thread и threading.
Многопоточность — концепция программирования, которая позволяет выполнять несколько операций одновременно в разных потоках. Поток — это единичная наименьшая величина выполнения с набором инструкций, является частью процесса.
В Python, как и во многих современных языках программирования есть собственная поддержка многопоточности. Есть две основные библиотеки для организации потоков — thread и threading.
Комбинируем графики
Matplotlib может легко комбинировать графики для отображения. Достаточно их просто объявить. Также указываем их положения с помощью функции subplot(). Выставляем имена, чтобы было наглядно, и выводим итоговое изображение.
Matplotlib может легко комбинировать графики для отображения. Достаточно их просто объявить. Также указываем их положения с помощью функции subplot(). Выставляем имена, чтобы было наглядно, и выводим итоговое изображение.