3.73K subscribers
478 photos
29 videos
35 files
343 links
Здесь есть всё, чтобы упростить вам изучение Python.
Download Telegram
Как пользоваться классами и объектами

Урок 29
Загружаем страницу из интернета

Для базовой загрузки страницы из интернета можем воспользоваться встроенной библиотекой urllib.requests.

Функция urlopen позволяет загрузить страничку. Однако при использовании подобного метода страница загрузится без элементов загруженных с помощью javascript и других серверных технологий.
Знакомство с BeatifulSoup

BeatifulSoup - библиотека предназначенная для парсинга html и xml файлов. В комплекте все, что необходимо для парсинга нужных элементов. Используется в промышленных масшатабах. Умеет проходиться по дереву, парсить группы элементов.

В примере, парсим html документ. С самым простым содержимым.
Генератор Фибоначчи

Последовательность Фибоначчи — ряд чисел, где каждое последующее число равно сумме двух предыдущих. Пример: 1, 1, 2, 3, 5, 8, 13. Используется в программировании. Любое число может быть записано как сумма уникальных чисел Фибоначчи. На примере представлен простейший генератор.
Функция zip

Функция позволяет перебирать несколько итерируемых объектов одновременно. Причем итерация будет проходить по минимальной длине из всех объектов. При использовании возвращает объект типа zip, который организует вложенные объекты вместе, в зависимости от количества аргументов функции. Парам, тройкам и так далее.
Функция zip подробнее

Разберемся как работает функция zip и где еще ее можно применять. Функция без с одним аргументом вернет собранные элементы, по одному в каждом. Чтобы увидеть внутренности объекта преобразуем его в list.

Полезно использовать, когда нужно собрать несколько кортежей или списков.
Работа с таблицами csv

В Python есть встроенная библиотека для работы с таблицами. Например, при парсинге сайта удобно оформлять результаты в таблицу, которую можно наглядно посмотреть в Excele или другом приложении. В примере представлено чтение из csv файла.
Функция sorted

Функция позволяет быстро отсортировать список или массив. Легкая, простая, полезная в повседневных задачах. Есть логический параметр reverse позволяющий инвертировать сортировку.
Что выведет программа?
Anonymous Quiz
15%
['ab', 'cd']
59%
['AB', 'CD']
5%
Ничего
21%
Error
Статические методы

Отличие статического метода от обычного метода класса в том, что первый привязан к классу, а не объекту.

Такой тип методов по умолчанию не принимает ни объект, ни класс – прописывать self или cls в аргументах не нужно. То есть статические методы не могут модифицировать ни объект, ни сам класс.

Обычную функцию стоит вносить в класс в качестве статического метода в том случае, когда эта функция логически относится к классу и имеет смысл там быть.
Что выведет программа?
Anonymous Quiz
29%
{3, 4, 5, 1, 2, 3}
23%
[1, 2, 3, 4, 5]
21%
{1, 2, 3, 4, 5}
27%
Error
Генерируем ID для пользователя.

Существует несколько способов определения для пользователя уникального интендификатора.

Простой
Используем публичную переменную в классе, отвечающем за генерацию, равную 1000000 и каждый раз прибавляем единицу и возвращаем из функции.

Универсальный
Генерируем с помощью встроенной библиотеки UUID, позволяет создавать уникальные номера пользователей с очень низкой долей погрешности. Для безопасной генерации используем функцию uuid.uuid4().
Упрощаем логирование

Для Pyhton есть овер-полезная библиотека, которая в разы упрощает систему логирования.

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

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

В первом случае, все выглядит очень смято и торчит со всех сторон. Во втором же, красиво и элегантно! Возьмите на вооружение.
Кортежи в циклах

Многие знают о том, что с помощью кортежей легко поменять местами значения переменных, однако у них есть более широкое применение.

Мы можем разбирать сложные составные массивы, списки с помощью кортежей и циклов. Это очень полезный, удобный инструмент.