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

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

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

РКН реестр:
https://knd.gov.ru/license?id=67847dd98e552d6b54a511ed&registryType=bloggersPermission
Download Telegram
⚡️ Создаём почтового бота для отправки email

Модуль smtplib позволяет настроить соединение между smtp сервером, чтобы работать с почтой. Установка не требуется, поскольку библиотека уже предустановлена в Python.

Полную документацию можно посмотреть здесь.

В этом примере мы взяли сервер Google (информацию по нему можно найти на сайте gmail), с помощью которого мы и создаём зашифрованное подключение.

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

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

#миниурок #smtplib
Что выведет этот код?
Anonymous Quiz
3%
bill
8%
hillary
40%
password
49%
Ошибку
⚡️ Замеряем время выполнения программы

Каждый раз, когда пишется какой-либо код, возникает вопрос: «Насколько моя программа быстрая?».

И, чтобы получить на него ответ, можно ограничиться лишь парой строчек.

Первый вариант — использование модуля time, а точнее — его одноимённого метода time, как в примере на картинке выше.

time.time() возвращает текущее время. Вычитая время начала и конца, мы получаем период исполнение команды

Второй вариант — использование unix и команды time. Для этого просто напишите перед запуском кода слово time и сразу узнайте скорость выполнения всей программы.

Учтите, что второй способ не стоит использовать на веб-серверах и других программах, которые зависят от внешних обстоятельств.

#миниурок #time
⚡️ Перечисления в 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