frozenset
Вот несколько ключевых особенностей
Неизменяемость: Это означает, что вы не можете добавлять, удалять или изменять элементы в
Хешируемость: Поскольку
Обратите внимание, что, поскольку
#python
frozenset
представляет собой неизменяемое множество. Основное отличие между set
и frozenset
заключается в том, что set является изменяемым типом данных, тогда как frozenset
не может быть изменен после создания.Вот несколько ключевых особенностей
frozenset
:Неизменяемость: Это означает, что вы не можете добавлять, удалять или изменять элементы в
frozenset
после его создания.Хешируемость: Поскольку
frozenset
неизменяем, он является хешируемым, что означает, что его можно использовать в качестве ключа в словарях и элемента множества.Обратите внимание, что, поскольку
frozenset
не поддерживает изменения, некоторые методы, которые изменяют множество (например, add
, remove
, discard
), не применимы к frozenset
. Однако, вы можете выполнять операции, возвращающие новые frozenset
, такие как объединение и пересечение.#python
👍9❤1
Отправляем универсальные уведомления
Наткнулся на интересный пакет notifiers, который позволяет отправлять уведомления на почту, через Телеграм бота, в Слэк и еще много куда. Всего доступно 16 провайдеров, подробнее про них в документации.
В функцию get_notifier передаем название провайдера в виде строки и получаем объект, с которым можно работать. Отправить уведомление можно с помощью универсального метода notify.
Если не уверены, какие аргументы нужно передать для отправки уведомления, то можете посмотреть их через атрибут required у созданного объекта.
Например, для Телеграма нужно передать токен бота, айди чата и само сообщение. В случае с почтой необходимо указать логин, пароль, адресата и также сообщение.
#уведомления #notifiers
Наткнулся на интересный пакет notifiers, который позволяет отправлять уведомления на почту, через Телеграм бота, в Слэк и еще много куда. Всего доступно 16 провайдеров, подробнее про них в документации.
В функцию get_notifier передаем название провайдера в виде строки и получаем объект, с которым можно работать. Отправить уведомление можно с помощью универсального метода notify.
Если не уверены, какие аргументы нужно передать для отправки уведомления, то можете посмотреть их через атрибут required у созданного объекта.
Например, для Телеграма нужно передать токен бота, айди чата и само сообщение. В случае с почтой необходимо указать логин, пароль, адресата и также сообщение.
#уведомления #notifiers
👍10
Создание дочернего процесса
Метод
Кстати, получается интересный случай, в коде примера выполняется и блок
#os #fork #процессы
Метод
os.fork()
создаёт дочерний процесс в том же месте кода, вызывая системную функцию fork()
, и возвращает PID (Process Identifier), который равен PID дочернего процесса в родительском процессе и нулю в новом.Кстати, получается интересный случай, в коде примера выполняется и блок
if
, и else
. Если не знать про os.fork()
и посмотреть вывод подобного кода, то возникнет много вопросов.#os #fork #процессы
👍3❤1
Обрабатываем номера телефонов
Пакет
Основным классом, который представляет номер, является
В целом, пакет использовать достаточно просто, базовые примеры есть на картинке. Также можете посмотреть документацию для более продвинутого использования.
#python #phonenumbers
Пакет
phonenumbers
основан на библиотеке libphonenumber от Google, которая позволяет форматировать, парсить и проверять номера телефонов.Основным классом, который представляет номер, является
PhoneNumber
. Объект можно создать, вызвав метод parse()
и передав в аргументы номер телефона в виде строки. Вторым аргументом также можно указать страну.В целом, пакет использовать достаточно просто, базовые примеры есть на картинке. Также можете посмотреть документацию для более продвинутого использования.
#python #phonenumbers
🔥7
Получение срезов итераторов
Если вы попытаетесь получить срез итератора, то столкнётесь с ошибкой TypeError, сообщающей о том, что на объект-генератор нельзя оформить подписку. Однако эта проблема поддаётся решению (см картинку).
Воспользовавшись методом itertools.islice, можно создать объект islice, который представляет собой итератор, выдающий нужные элементы. Однако здесь важно отметить то, что эта конструкция использует все элементы генератора вплоть до начала среза и все элементы в объекте islice.
#python
Если вы попытаетесь получить срез итератора, то столкнётесь с ошибкой TypeError, сообщающей о том, что на объект-генератор нельзя оформить подписку. Однако эта проблема поддаётся решению (см картинку).
Воспользовавшись методом itertools.islice, можно создать объект islice, который представляет собой итератор, выдающий нужные элементы. Однако здесь важно отметить то, что эта конструкция использует все элементы генератора вплоть до начала среза и все элементы в объекте islice.
#python
🔥4
Функция math.perm()
Он требует указания двух параметров:
Пример использования: расчет количества перестановок трех элементов из пяти. Это демонстрирует, сколько существует вариантов формирования трехэлементных подмножеств из пятерки.
#python
math.perm()
используется для определения количества возможных способов выбора и расположения m элементов из набора n элементов. Этот метод включен в модуль math
.Он требует указания двух параметров:
n
— общее число элементов в наборе, и m
— число элементов в каждой возможной выборке. Результатом выполнения функции является целочисленное значение, представляющее число таких перестановок. Если n
меньше m
, функция возвратит 0.Пример использования: расчет количества перестановок трех элементов из пяти. Это демонстрирует, сколько существует вариантов формирования трехэлементных подмножеств из пятерки.
#python
❤4👍1
FastAPI
FastAPI – фреймворк, про который однозначно стоит рассказать. Честно, синтаксис мне кажется намного приятнее, чем у других фреймворков.
Интересно, что автор фреймворка глубоко изучил несколько других фреймворков, от классических, таких как Django, до более современных, таких как Sanic, а также изучил различные технологии в NestJS (веб-фреймворк Node.js, Typescript).
Фреймворк имеет важную особенность – автоматическая генерация документации: как только ваши конечные точки будут реализованы, вы сможете поиграться с API, используя соответствующий стандартам пользовательский интерфейс. Поддерживаются SwaggerUI, ReDoc и другие.
FastAPI построен на удивительной библиотеке Starlette, в результате чего производительность сравнима с Node.js, а в некоторых случаях даже Go! В целом, складывается стойкое предчувствие, что FastAPI будет мчаться вперёд как лучший асинхронный фреймворк для Python.
#фреймворки #web
FastAPI – фреймворк, про который однозначно стоит рассказать. Честно, синтаксис мне кажется намного приятнее, чем у других фреймворков.
Интересно, что автор фреймворка глубоко изучил несколько других фреймворков, от классических, таких как Django, до более современных, таких как Sanic, а также изучил различные технологии в NestJS (веб-фреймворк Node.js, Typescript).
Фреймворк имеет важную особенность – автоматическая генерация документации: как только ваши конечные точки будут реализованы, вы сможете поиграться с API, используя соответствующий стандартам пользовательский интерфейс. Поддерживаются SwaggerUI, ReDoc и другие.
FastAPI построен на удивительной библиотеке Starlette, в результате чего производительность сравнима с Node.js, а в некоторых случаях даже Go! В целом, складывается стойкое предчувствие, что FastAPI будет мчаться вперёд как лучший асинхронный фреймворк для Python.
#фреймворки #web
👍7❤3
Typeshed
Typeshed — это коллекция заглушек (stubs) для стандартной библиотеки Python, библиотек Python builtins, а также сторонних пакетов. Заглушки – это файлы Python, содержащие определения типов для модулей и пакетов.
#для_продвинутых
Typeshed — это коллекция заглушек (stubs) для стандартной библиотеки Python, библиотек Python builtins, а также сторонних пакетов. Заглушки – это файлы Python, содержащие определения типов для модулей и пакетов.
#для_продвинутых
👎4😱2
Разница между генераторными выражениями и генераторами коллекций
Записи в первой и второй строчке в коде выше очень похожи, но различаются видами скобок. В генераторе списка они квадратные, а в генераторном выражении – круглые.
Распечатав переменные, можно заметить, что значением переменной
Если вам нужен результат, например в виде списка, прямо сейчас для дальнейшего выполнения программы, то используйте генераторы коллекций.
А если же значения понадобятся еще не скоро или вообще неизвестно, понадобится ли они вообще, то предпочтительнее генераторы, чтобы не занимать лишнюю память и не нагружать систему.
#python
Записи в первой и второй строчке в коде выше очень похожи, но различаются видами скобок. В генераторе списка они квадратные, а в генераторном выражении – круглые.
Распечатав переменные, можно заметить, что значением переменной
a
является список, а переменная x
хранит в себе объект генератора. И здесь возникает вопрос, что же использовать.Если вам нужен результат, например в виде списка, прямо сейчас для дальнейшего выполнения программы, то используйте генераторы коллекций.
А если же значения понадобятся еще не скоро или вообще неизвестно, понадобится ли они вообще, то предпочтительнее генераторы, чтобы не занимать лишнюю память и не нагружать систему.
#python
👍4👎2
Работаем с картинками в Python
Библиотека Pillow — это очень мощный, быстрый и удобный инструмент для обработки графики в Python.
В сегодняшнем примере мы применим ее для конвертации картинки в черно-белую, обратим цвета, вертикально отзеркалим и сохраним в файл.
Метод
Библиотека Pillow — это очень мощный, быстрый и удобный инструмент для обработки графики в Python.
В сегодняшнем примере мы применим ее для конвертации картинки в черно-белую, обратим цвета, вертикально отзеркалим и сохраним в файл.
Метод
Image.open('resources/img/cat.jpg')
считывает картинку из папки. img.convert('L')
трансформирует картинку в черно-белую. ImageOps.invert(image)
обращает цвета. img.transpose(Image.FLIP_LEFT_RIGHT)
вертикально отзеркаливает картинку. img.save('grayscale_cat.jpg')
сохранит картинку на диске.❤1
This media is not supported in your browser
VIEW IN TELEGRAM
⚡️ Ночью Телеграм заблокировал крупнейшего бота с бесплатными книгами — Флибусту. Уже утром разработчики подняли новый, срочно сохраняйте себе: t.me/flibustatopbot
👎11😱3🔥1
Голосовой вывод в Python с помощью pyttsx3
Сегодня мы поговорим о библиотеке
Что такое pyttsx3?
Пример использования
Сегодня мы поговорим о библиотеке
pyttsx3
, которая предоставляет удобные инструменты для реализации голосового вывода текста с использованием Python
. Эта библиотека может пригодиться, например, для создания ассистентов, аудиокниг, аудиогидов и многих других приложений.Что такое pyttsx3?
pyttsx3
- это простой в использовании модуль Python
для синтеза речи. Он предоставляет возможность преобразования текста в речь с различными настройками, такими как выбор голоса и регулирование скорости речи. Эта библиотека основана на популярной библиотеке pyttsx
, но с более активной поддержкой и совместимостью с Python 3
.pyttsx3
также поддерживает события, что делает его полезным инструментом для создания интерактивных приложений с голосовым выводом.Пример использования
pyttsx3
на фото.👍5