⚡️ Создаём почтового бота для отправки email
Модуль smtplib позволяет настроить соединение между smtp сервером, чтобы работать с почтой. Установка не требуется, поскольку библиотека уже предустановлена в Python.
Полную документацию можно посмотреть здесь.
В этом примере мы взяли сервер Google (информацию по нему можно найти на сайте gmail), с помощью которого мы и создаём зашифрованное подключение.
Теперь осталось просто зайти в свою почту и разрешить доступ ненадёжных приложений к аккаунту.
Также, вы можете отправлять вложения (файлы, фотографии) прямо через этот модуль. Для этого сообщения составляются с помощью модуля email.
#миниурок #smtplib
Модуль smtplib позволяет настроить соединение между smtp сервером, чтобы работать с почтой. Установка не требуется, поскольку библиотека уже предустановлена в Python.
Полную документацию можно посмотреть здесь.
В этом примере мы взяли сервер Google (информацию по нему можно найти на сайте gmail), с помощью которого мы и создаём зашифрованное подключение.
Теперь осталось просто зайти в свою почту и разрешить доступ ненадёжных приложений к аккаунту.
Также, вы можете отправлять вложения (файлы, фотографии) прямо через этот модуль. Для этого сообщения составляются с помощью модуля email.
#миниурок #smtplib
⚡️ Замеряем время выполнения программы
Каждый раз, когда пишется какой-либо код, возникает вопрос: «Насколько моя программа быстрая?».
И, чтобы получить на него ответ, можно ограничиться лишь парой строчек.
Первый вариант — использование модуля time, а точнее — его одноимённого метода time, как в примере на картинке выше.
time.time() возвращает текущее время. Вычитая время начала и конца, мы получаем период исполнение команды
Второй вариант — использование unix и команды time. Для этого просто напишите перед запуском кода слово time и сразу узнайте скорость выполнения всей программы.
Учтите, что второй способ не стоит использовать на веб-серверах и других программах, которые зависят от внешних обстоятельств.
#миниурок #time
Каждый раз, когда пишется какой-либо код, возникает вопрос: «Насколько моя программа быстрая?».
И, чтобы получить на него ответ, можно ограничиться лишь парой строчек.
Первый вариант — использование модуля time, а точнее — его одноимённого метода time, как в примере на картинке выше.
time.time() возвращает текущее время. Вычитая время начала и конца, мы получаем период исполнение команды
Второй вариант — использование unix и команды time. Для этого просто напишите перед запуском кода слово time и сразу узнайте скорость выполнения всей программы.
Учтите, что второй способ не стоит использовать на веб-серверах и других программах, которые зависят от внешних обстоятельств.
#миниурок #time
Что выведет этот код?
Anonymous Quiz
19%
[2, 4, 8, 16, 32, 64]
26%
[4, 8]
10%
[4.0, 8.0]
18%
[4, 8, 16]
27%
Ошибку
⚡️ Перечисления в Python
Перечисления — это набор значений, позволяющих упростить понимание кода.
Они могут вмещать внутри себя небольшой функционал.
В этом нам поможет модуль enum. Он хранит в себе базовый клас Enum, с которым мы и будем работать.
Также существует класс IntEnum, который будет преобразовать все значения в числа.
Есть и декоратор — unique. Он позволяет задавать только уникальные значения.
Также, можно не задавать значения, а использовать метод auto, который сам изменит их. Он использует метод _generate_next_value_ класса.
Поскольку это самый обычный класс, вы так же можете добавлять собственные методы в перечислении.
#теория #enum
Перечисления — это набор значений, позволяющих упростить понимание кода.
Они могут вмещать внутри себя небольшой функционал.
В этом нам поможет модуль 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 — Расстояние Левенштейна.
Установка:
Основное отличие от fuzzywuzzy — цель использования. fuzzywuzzy имеет относительно небольшой функционал, который отлично подойдёт, например, для голосовых ботов.
spellchecker же имеет больше функций и может самостоятельно исправлять текст, как на примере выше.
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 — длины списка.
В этом нам поможет поможет модуль timeit. Он уже есть в Python и его установка не требуется.
Одноименный метод timeit(comm, setup, number) — измеряет время выполняемой команды.
Метод number — это количество повторений;
А repeat() — это выполнение одной и той же команды несколько раз, возвращая массив с результатми.
Имеет те же самые параметры, что и timeit(), за исключением repeat — длины списка.
⚡️ База данных символов юникод
Модуль unicodedata позволяет узнать имя символа, его представление в системе unicode, категорию и т.д.
В этом посте представлена лишь небольшая часть команд, больше — в документации.
name и lookup — первая команда принимает символ и возвращает его имя. Вторая же делает всё наоборот.
normalize(format, unistr) — в юникоде несколько символов могут быть выражены по-разному, поэтому normalize переводит символы внутри строки в общепринятую форму.
decimal (chr, default) — переводит chr в значение типа int. Если передан символ, то возвращает default. В случае, если default не задан, вернётся ошибка ValueError.
#миниурок #unicodedata
Модуль unicodedata позволяет узнать имя символа, его представление в системе unicode, категорию и т.д.
В этом посте представлена лишь небольшая часть команд, больше — в документации.
name и lookup — первая команда принимает символ и возвращает его имя. Вторая же делает всё наоборот.
normalize(format, unistr) — в юникоде несколько символов могут быть выражены по-разному, поэтому normalize переводит символы внутри строки в общепринятую форму.
decimal (chr, default) — переводит chr в значение типа int. Если передан символ, то возвращает default. В случае, если default не задан, вернётся ошибка ValueError.
#миниурок #unicodedata
⚡️ Бесконечные итераторы
Модуль itertools — это набор функций для эффективной работы с циклами. Сегодня мы рассмотрим бесконечные итераторы.
Все возможности модуля можно просмотреть в документации.
• count (start, step) — возвращает числа начиная с start и каждый раз добавляет step. Напоминает range, но без ограничений.
• cycle (elem) — циклично возвращает все элементы внутри elem.
• repeat (elem, count) — count раз возвращает elem.
#миниурок #itertools
Модуль itertools — это набор функций для эффективной работы с циклами. Сегодня мы рассмотрим бесконечные итераторы.
Все возможности модуля можно просмотреть в документации.
• count (start, step) — возвращает числа начиная с start и каждый раз добавляет step. Напоминает range, но без ограничений.
• cycle (elem) — циклично возвращает все элементы внутри elem.
• repeat (elem, count) — count раз возвращает elem.
#миниурок #itertools