Python Community
13.1K subscribers
1.24K photos
26 videos
15 files
712 links
Python Community RU - СНГ сообщество Python-разработчиков

Чат канала: @python_community_chat

Сотрудничество: @cyberJohnny и @Sergey_bzd

РКН реестр:
https://knd.gov.ru/license?id=67847dd98e552d6b54a511ed&registryType=bloggersPermission
Download Telegram
⚡️ Перечисления в Python

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

Они могут вмещать внутри себя небольшой функционал.

В этом нам поможет модуль enum. Он хранит в себе базовый клас Enum, с которым мы и будем работать.

Также существует класс IntEnum, который будет преобразовать все значения в числа.

Есть и декоратор — unique. Он позволяет задавать только уникальные значения.

Также, можно не задавать значения, а использовать метод auto, который сам изменит их. Он использует метод _generate_next_value_ класса.

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

#теория #enum
Что выведет этот код?
Anonymous Quiz
46%
o-l-l-e-H
14%
Hello
11%
d-l-r-o-W
17%
SyntaxError
12%
W-o-r-l-d
⚡️ Проверка текста на орфографические ошибки

spellchecker
— модуль с открытым исходным кодом для анализа текста. Работает он по тому же принципу, что и fuzzywuzzyРасстояние Левенштейна.

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

На данный момент библиотека поддерживает шесть языков: английский, польский, французский, португальский, немецкий и русский.

Основное отличие от fuzzywuzzy — цель использования. fuzzywuzzy имеет относительно небольшой функционал, который отлично подойдёт, например, для голосовых ботов.

spellchecker же имеет больше функций и может самостоятельно исправлять текст, как на примере выше.
Что выведет код выше?
Anonymous Quiz
34%
True True True
39%
True True False
18%
True False False
9%
True False True
⚡️ Замеряем время выполнения команд

В этом нам поможет поможет модуль timeit. Он уже есть в Python и его установка не требуется.

Одноименный метод timeit(comm, setup, number) — измеряет время выполняемой команды.

Метод number — это количество повторений;

А repeat() — это выполнение одной и той же команды несколько раз, возвращая массив с результатми.

Имеет те же самые параметры, что и timeit(), за исключением repeat — длины списка.
Что выведет этот код?
Anonymous Quiz
45%
Hw re yu?
25%
1 0 4 0
11%
1 0 4
20%
Hello!!
⚡️ База данных символов юникод

Модуль unicodedata позволяет узнать имя символа, его представление в системе unicode, категорию и т.д.

В этом посте представлена лишь небольшая часть команд, больше — в документации.

name и lookup — первая команда принимает символ и возвращает его имя. Вторая же делает всё наоборот.

normalize(format, unistr) — в юникоде несколько символов могут быть выражены по-разному, поэтому normalize переводит символы внутри строки в общепринятую форму.

decimal (chr, default) — переводит chr в значение типа int. Если передан символ, то возвращает default. В случае, если default не задан, вернётся ошибка ValueError.

#миниурок #unicodedata
Что выведет код выше?
Anonymous Quiz
35%
Hello
18%
python
28%
community
18%
variants
⚡️ Бесконечные итераторы

Модуль itertools — это набор функций для эффективной работы с циклами. Сегодня мы рассмотрим бесконечные итераторы.

Все возможности модуля можно просмотреть в документации.

• count (start, step) — возвращает числа начиная с start и каждый раз добавляет step. Напоминает range, но без ограничений.

• cycle (elem) — циклично возвращает все элементы внутри elem.

• repeat (elem, count)count раз возвращает elem.

#миниурок #itertools
Что выведет этот код?
Anonymous Quiz
41%
True
29%
False
16%
Ошибку
14%
[1, -1, 5, -6, 10]
⚡️ Полезные команды из модуля itertools

Модуль itertools
— это набор функций для эффективной работы с циклами. Сегодня мы рассмотрим бесконечные итераторы.

chain(args) — Возвращает все элементы из первого итерируемого объекта до конца args.

zip_longest(arr1, arr2, fillvalue) — делает то же самое, что и zip (arr1, arr2), но если у arr1 и arr2 разная длина возвращает fillvalue.

compress(arr1, arr2) — "Сохраняет" элемент из arr1, если элемент из arr2 с этим же индексом является True

filterfalse(func, iter) — Работает так же как и filter, но сохраняет значения, только если результат функции false
Что выведет этот код?
Anonymous Quiz
14%
1
26%
4
42%
2
18%
3