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
⚡️ Парсим XML и HTML

И самым лучшим выбором для этого является lxml. Это библиотека позволяет быстро обрабатывать файлы XML и HTML формата.

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

Он намного быстрее, чем html.parser и с ним в разы проще работать. Более стабильной и удобной альтернативой является html5lib, но это довольно медленная библиотека.

Единственным недостатком модуля является его сильная зависимость от C. Подробнее обо всём на GitHub.

#миниурок #lxml
⚡️ Задачка с собеседования | #Medium

Условие:

Вам нужно найти в промежутке от a до b (range(a, b + 1)) числа с особым свойством. Это те, у которых сумма их цифр, возведенных в степень их позиции равняется тому же числу.

Примеры:

sum_dig_pow(1, 100) ➞ [1, 2, 3, 4, 5, 6, 7, 8, 9, 89]
sum_dig_pow(100, 135) ➞ [135]
sum_dig_pow(90, 100) ➞ []

📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇

#Задачка_с_собеседования
⚡️ Ответ на предыдущую задачу
⚡️ Создаём игру

С помощью arcade мы можем создавать полноценные игры с 2D графикой.

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

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

Конечно, есть и недостатки: вам придётся вручную управлять окном и его рендером, а также циклом обработки действий.

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

#миниурок #arcade
Что выведет код выше?
Anonymous Quiz
46%
True
50%
False
4%
Узнать ответ
⚡️ Генераторы и yield

В Python есть объекты, которые могут возвращать не одно значение, а несколько. Делается это за счёт оператора yield.

Когда мы используем его в функции и вызываем её, в результате получаем генератор. Получить значение из него можно с помощью функции next().

Код в функции выполняется также, как и всегда, но останавливается, когда встречает yield и ждёт следующего вызова next().

Также по генератором можно пройтись с помощью цикла for, но только один раз.

#теория
⚡️ Шаблон Снимок

Паттерн позволяет сохранять и восстанавливать прошлые состояния объектов, при этом не раскрывая подробности их реализации.

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

Класс игрока может самостоятельно собрать данные, которые необходимо сохранить и вернуть их в виде объекта Memento. Также класс игрока реализует восстановление из Memento.

#паттерны #memento
⚡️ Задачка с собеседования | #Medium

Условие:

По заданному числу найдите перестановку с наименьшим абсолютным значением (без нулей в начале числа). На вход идёт целое число и в результате тоже должно быть целое число.

Примеры:

min_permutation(0) ➞ 0
min_permutation(-20) ➞ -20
min_permutation(293940) ➞ 203499

📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇

#Задачка_с_собеседования
⚡️ Ответ на предыдущую задачу
⚡️ VSCode в браузере

Это легковесная версия Visual Studio Code, которая отлично работает в браузере. Найти её можно на этом сайте.

Он поддерживает почти все функции десктопного редактора (подсветка, автодополнение). Также может работать с git и поддерживает расширения, но с небольшими ограничениями.

К тому же, IDE прекрасно работает на планшете, так что вы сможете быстро дописать код, пока куда-то едете. Подробнее обо всём в блоге (англ. яз.)

#миниурок #ide
Что выведет код выше?
Anonymous Quiz
24%
[1, 2]
61%
[1, 2, 3, 4]
11%
Ошибку
4%
Узнать ответ
⚡️ Немного про атрибуты

Все атрибуты, которые вы храните в классе можно найти в переменной __dict__. Если вы попытаетесь добавить новый атрибут, переменная изменится.

Порой подобная фича бывает лишней. К тому же подобный подход потребляет больше памяти. Если с маленькими объектами проблем не возникнет, то вот на больших вы заметите значительную разницу.

Тут на помощь приходит __slots__, он указывает, что у класса могут быть только атрибуты, которые находятся в списке.

#теория
Что выведет код выше?
Anonymous Quiz
37%
0
43%
1
13%
Ошибку
7%
Узнать ответ
⚡️ Работаем с WhatsApp

pywhatkit
это не просто библиотека для взаимодействия с WhatsApp, а целый набор инструментов, которые могут пригодится при работе с этим мессенджером.

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

Помимо простой отправки сообщений, модуль также может преобразовывать изображения в ASCII art, превращать строку в рукописный текст, воспроизводить видео с YouTube.

И это ещё не весь функционал. Подробнее обо всех возможностях пакета можно почитать в документации.

#миниурок #pywhatkit
⚡️ Задачка с собеседования | #Medium

Условие:

Напишите функцию, которая поможет вам определить дату, если вы знаете номер дня в году, а также является ли год високосным или нет. Она принимает номер дня и isLeap в качестве аргументов и возвращает соответствующую дату года в виде строки «Месяц, день».

Примеры:

get_day(365, False) ➞ 'December, 31'
get_day(365, True) ➞ 'December, 30'
get_day(1, True) ➞ 'January, 1'
get_day(127, True) ➞ 'May, 6'

📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇

#Задачка_с_собеседования
⚡️ Ответ на предыдущую задачу