🐍 Укус питона 🐍
2.89K subscribers
758 photos
4 videos
279 links
🐍 Канал о программировании на языке Python. Тематические уроки и лайфхаки.

👽 Админ - @it_dashka
🔊 Купить рекламу: https://telega.in/c/byteofpython

👉 Чат: @abyteofpython
👉 Поделиться с друзьями: @byteofpython
Download Telegram
Что в результате выведет данный код в консоль?
Anonymous Quiz
7%
5
71%
25
6%
SyntaxError
4%
None
11%
Ничего
Функция filter

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

Функция принимает на вход функцию и итерируемый объект. В примере мы создали функцию is_even которая проверяет число на четность, далее передав функцию в фильтр, мы проверяем список чисел и сохраняем только четные цифры.

🐍 Укус питона // 💬 Чат // #теория #фильтр #filter
Что в результате выведет данный код в консоль?
Anonymous Quiz
10%
SyntaxError
31%
End
44%
Программа уйдет в бесконечный цикл
14%
kotlin, go, java, python
Основы парсинга. Парсим habr.

Парсинг - автоматизированный сбор и структуризация данных в нужном виде. Обычно его используют для быстрого наполнения своих сайтов и каналов контентом или анализа конкурентов. В этом посте мы спарсим статьи с главной страницы хабра.

Для парсинга понадобятся две библиотеки: requests - для http запроса к сайту и beautifulsoup4 - для удобной навигации по html документу. Установить их можно, прописав pip install requests и pip install beautifulsoup4 соответственно.

Далее с помощью метода requests.get получаем главную страницу хабра и передаём её в объект beautifulsoup. Библиотека beautifulsoup позволяет нам с помощью метода select получить список объектов по css-селектору.

Подсматриваем нужные нам селекторы в инспекторе кода браузера и начинаем парсинг. В начале получаем список всех статей. Далее в цикле, также с помощью метода select вытаскиваем нужные нам поля, например название и ссылку. Метод select всегда возвращает список объектов, поэтому если нам нужен только один объект, всегда нужно указать его индекс, например articles[0]. У каждого объекта есть поля и атрибуты, например поле text содержит весь текст в объекте, а в словаре attrs хранятся все атрибуты объекта.

🐍 Укус питона // 💬 Чат // #гайды #библиотеки #парсинг #habr
Что в результате выведет данный код в консоль?
Anonymous Quiz
11%
468
25%
SyntaxError
19%
9753
32%
20
12%
97530
Что в результате выведет данный код в консоль?
Anonymous Quiz
20%
SyntaxError
31%
True
31%
TypeError
18%
False
Основы парсинга. Атрибуты

В прошлом уроке мы разобрали, что такое парсинг и как парсить текст с сайтов. Но часто требуется парсить не только текст, но и картинки, которые хранятся в атрибутах html тегов.
Сегодня мы попробуем спарсить поисковую выдачу с ЛитРес

Снова подсматриваем нужные нам селекторы в инспекторе кода браузера и начинаем парсинг. Получаем список всех книг и начинаем разделять данные. Название и автора книги парсим как в прошлых раз, просто найд элемент через select и вытащив из него поле text.

Но вот ссылку на картинку спарсить таким образом нельзя. Для этого находим класс тега с картинкой, и извлекаем из него атрибут src, с помощью attrs['src'].

ID книги и стоимость лежат в формате json ({ключ: 'значение'}), поэтому с помощью метода find и срезов, находим нужный нам ключ и обрезаем лишнее и выводим всю информацию в консоль.

🐍 Укус питона // 💬 Чат // #гайды #библиотеки #парсинг #атрибуты
Что в результате выведет данный код в консоль?
Anonymous Quiz
49%
[1, 3, 5, 7, 9]
17%
[1, 3, 5, 7, 9, 11]
6%
[0, 2, 4, 6, 8]
18%
[0, 2, 4, 6, 8, 10]
11%
SyntaxError
Сортировки

Есть два способа отсортировать список, можно вызвать функцию sorted() или вызвать метод sort()

Функция sorted() возвращает отсортированный список, но не меняет переданный объект. Поэтому в первом примере, у нас вначале выводится обычный список, а при выводе результата - отсортированный список.

Метод sort() поступает наоборот, он меняет переданный объект, но ничего не возвращает. Поэтому в первом случае у нас выводится отсортированный список, а при попытке вывести результат сортировки None.

Можно также сортировать списки по убыванию, передав дополнительный аргумент reversed=True.

🐍 Укус питона // 💬 Чат // #теория #сортировки
Что в результате выведет данный код в консоль?
Anonymous Quiz
4%
[3, 4, 7, 1, 9, 2, 4]
65%
[1, 2, 3, 4, 4, 7, 9]
6%
SyntaxError
25%
None
История Python

Знаете ли вы, что название языка происходит от ТВ шоу "Летающий цирк Монти Пайтона"? И об этом сказано в FAQ 😏

🐍 Укус питона // 💬 Чат // #интересные_факты #факты #история
Что в результате выведет данный код в консоль?
Anonymous Quiz
12%
Hello, World!
3%
Hello, World
18%
Hello, Python!
33%
Hello, Python
21%
SyntaxError
14%
TypeError
Emoji в python

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

Для работы с эмоджи, есть удобная одноимённая библиотека emoji (pip install emoji). Метод emojize() принимает на вход строку и заменяет в ней cldr переменные на сами эмоджи.

Полный список cldr имён, можно найти тут.

🐍 Укус питона // 💬 Чат // #теория #emoji #строки #эмоджи