PYTHON ONLINE
402 subscribers
1 photo
52 links
PYTHON для начинающих
Download Telegram
Бесконечный итератор.

Функция cycle() из модуля itertools принимает на вход итерируемый объект и создает бесконечный итератор, который циклически возвращает элементы данного объекта.

Суть в том, что когда элементы последовательности заканчиваются, итерация начинается вновь с первого элемента.

Но при работе с циклом по такому итератору, важно предусмотреть выход из цикла, иначе цикл станет бесконечным.

Можно также воспользоваться islice(), который вернет итератор по подмножеству переданного объекта.
Метод Counter.most_common()

С помощью данного метода можно возвратить список из n наиболее распространенных элементов и их количество от наиболее распространенных до наименее. Если n опущено или None, метод cnt.most_common() возвратит все элементы в счетчике.

При этом, элементы с равным количеством будут упорядочены в порядке, в котором они встречаются первыми.
Как проверить четности или нечетности числа без использования оператора %

Данный трюк, по сути, не намного лучше, чем использование оператора %, но иногда он действительно эффективен (с большими числами).

К примеру:
k = 3
Двоичный: «11 & 1» будет 001, поэтому число нечетное
k = 4
Двоичный: «100 & 1» будет 000, поэтому число четное.
Наборы символов

В стандартной библиотеке можно найти множество интересных вещей. Сегодня мы с вами поговорим об одной из них.

В пакете string можно получить получить наборы символов по заданному параметру. По своей сути, это уже готовые строки, для формирования пароля или шифрования.
Как проверить строки на анаграммность?

Для поверки строк на анаграммность, (к примеру, в следствии случайной перестановки букв) можно использовать класс Counter модуля collections.
Метод geopy.

Иногда программистам сложно ориентироваться в географии. Для подобных ситуаций существует модуль geopy:

 pip install geopy

Его работа осуществляется путём абстрагирования API разных сервисов геокодирования. Так, данный модуль позволяет узнать полный адрес места, его долготу, широту и даже высоту.

Помимо этого, в нем имеется полезный класс Distance. Он высчитывает расстояние между двумя местами в удобной единице измерения.
Класс defaultdict

Данный класс модуля collections ни чем не отличается от обычного словаря, кроме того, что по умолчанию всегда вызывается функция, которая возвращает значение по умолчанию для новых значений, то есть класс defaultdict() представляет собой словарь со значениями по умолчанию.

Для более полного ознакомления с классом defaultdict можно перейти по ссылке → ТЫК ←.
Метод Counter.most_common()

С помощью данного метода можно возвратить список из n наиболее распространенных элементов и их количество от наиболее распространенных до наименее. Если n опущено или None, метод cnt.most_common() возвратит все элементы в счетчике.

При этом элементы с равным количеством будут упорядочены в порядке, в котором они встречаются первыми.
Конвертируем из JPG в PNG с помощью Pillow

Чтобы конвертировать, нам нужно открыть изображение и просто сохранить его в другом формате.

PNG-формат наиболее подходящий формат для фотографий, и при этом он позволяет сохранить лучшее качество снимков, чем JPG. Также PNG поддерживает прозрачность, поэтому это почти идеальный вариант для дизайнеров, которым нужны прозрачные элементы.
Выводим строку или список n раз.

Для этого можно использовать умножение (*) со строками или списками; умножать их можно любое количество раз.

Одним из самых интересных вариантов может быть определение списка с постоянным значением, к примеру ноль.
Удаление несколько элементов из списка.

С помощью методов remove() и pop() можно удалить только один элемент, а вот для удаления нескольких элементов используется метод del.

К примеру, из списка ['A', 'B', 'C', 'D', 'E', 'F'] нужно удалить элементы B, C и D. Как раз данная операция будет осуществляться с помощью del.
Как вставить одно изображение в другое с помощью Pillow?

Метод paste() из библиотеки Pillow, дает возможность вставить одно изображение в другое.

При этом, по умолчанию изображение вставляется в верхней левой части фоновой картинки.

Для получения более подробной информации можно перейти по ссылке → ТЫК ←.
Метод math.fsum.

Данный метод позволяет вернуть сумму всех элементов в любой итерации. Итерацией может быть кортеж, массив, список. Если итерируемый объект не является числом, то метод возвращает TypeError. Метод возвращает сумму всех значений в виде значения с плавающей запятой.
Конкатенация строк в Python с использованием функции join()

Можно использовать функцию join() для объединения строки с разделителем. Будет полезно при наличии последовательности строк, к примеру, список или кортеж строк.
Что быстрее, [] или list?

На данный вопрос поможет ответить timeit. Он используется при необходимости измерения скорости выполнения каких-либо задач.

К сожалению, time во-первых не удобен, а во-вторых, на результат влияет огромное количество факторов, начиная от загруженности процессора и заканчивая сборщиком мусора.

Более полную информацию можно найти по ссылочке → ТЫК
Как подготовить объект к отправке на сервер?

Для начала нам нужно перевести объект в строку. К примеру, в JSON формат. Проще всего это сделать с помощью marshmallow.

Установка: pip install marshmallow

Так, нам не нужно будет добавлять convert_to_json() в каждый класс, а достаточно просто настроить схему (Schema) с полями (fields) от marshmallow.

Также, за счёт схем можно переводить строку обратно в объект за счёт той же самой схемы, что была создана ранее.

Но нужно помнить и про валидацию, с ней можно ознакомиться тут: → ТЫК ←.
Модули также являются объектами.

При необходимости мы можем получить свойства даже у модулей. У них есть имя (__name__), документация (__doc__) и файл, в котором он находится (__file__).

Также, помимо обычного import мы можем получить доступ к модулю, используя importlib.import_module() или __import__().
Модуль collections.

Представляет собой изменённые контейнеры (dict, list, set, tuple), которые могут помочь при решении различных задач.

Counter(iter) — подсчитает количество повторений объекта в iter. С помощью most_common(n) вы сможете получить n самых повторяющихся объектов.

defaultdict(default_factory) — создаёт и подставляет новый объект, созданный default_factory, если не переданного ключа не существует.

namedtuple(typename, field_names) — создаёт тип кортежа с именованными полями.
Как подготовить объект к отправке на сервер?

Для начала нам нужно перевести объект в строку. К примеру, в JSON формат. Проще всего это сделать с помощью marshmallow.

Установка: pip install marshmallow

Так, нам не нужно будет добавлять convert_to_json() в каждый класс, а достаточно просто настроить схему (Schema) с полями (fields) от marshmallow.

Также, за счёт схем можно переводить строку обратно в объект за счёт той же самой схемы, что была создана ранее.

Но нужно помнить и про валидацию, с ней можно ознакомиться тут: → ТЫК ←.