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
⚡️ Что такое декоратор?

Это — вызываемый объект (функция, класс с call), способный менять поведение другой функции, при этом оставляя код внутри неё таким же.

Создаются они довольно просто, а используются практически везде. Это функция, которая возвращает функцию, которая меняет поведения другого объекта (см. пример).

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

#теория
Что выведет код выше?
Anonymous Quiz
9%
[]
23%
hello
9%
Ничего
47%
Ошибку
12%
Узнать ответ
⚡️ Задачка с собеседования | #Medium

Условие:

Вам нужно узнать, является ли предложение панграммой? Это предложения, в котором используются все буквы алфавита как минимум раз

Пример:

is_pangram('The quick brown fox jumps over a lazy dog') -> True
is_pangram('Sphinx of black quartz, judge my vow') -> True
is_pangram('not pangram') -> False

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

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

Все слышали про встроенный модуль logging, но его довольно тяжело настраивать. Ему на замену пришёл loguru.

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

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

Все преимущества модуля вы, к слову, можете почитать в документации.

#миниурок #loguru
Что выведет код выше?
Anonymous Quiz
40%
True
13%
False
41%
Ошибку
6%
Узнать ответ
⚡️ Работаем с данными

agate
— библиотека для для анализа данных, их обработки и простого вывода. Раньше она называлась journalism.

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

Модуль считается упрощённой альтернативой NumPy и Pandas с более простым и читаемым кодом. Вы можете фильтровать данные, сортировать их, редактировать, суммировать и делать это довольно быстро.

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

Условие:

Вам нужно отсортировать набор чисел на основе их значимости. Определяется она суммой всех цифр числа. Если же веса одинаковые у двух чисел, то они сравниваются как строки ('ac' < 'bd').

Пример:

solution('56 65 100 99 68 86 180 90') -> '100 180 90 56 65 68 86 99'
solution('103 123 4444 99 2000') -> '2000 103 123 4444 99'
solution('2000 10003 9999 11 11 22 123') -> '11 11 2000 10003 22 123 9999'


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

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

Пользователи так и норовят запихнуть в важные поля что-то не то, так ещё и Python подливает масло в костёр со своей динамической типизацией. В этой ситуации помогает pydantic.

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

Модуль пользуется популярностью, имеет хорошую документацию и поддерживает PyCharm, VSCode. Код выглядит просто и выполняется быстро (сравнение тут).

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

#миниурок #pydantic
⚡️ Переводим с помощью гугла

В мире существует огромное количество языков и простому разработчику с ними не совладать. В таких ситуациях помогают переводчики, а доступ к одному из них даёт googletrans.

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

Учтите, что поскольку модуль постоянно работает с серверами гугла, приложение всегда должно быть подключено к сети.

Проблема официального инструмента гугл, в том что он платный. А эта библиотека — бесплатная альтернатива. Подробнее, как обычно, можно почитать в документации.

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

Условие:

Вам дан IP адрес, но в нём нет разделителей (точек). Вам нужно найти все возможные правильные IP-адреса. Как-то изменять цифры или их порядок нельзя. Количество цифр всегда будет меньше 13.

Пример:

restore_ip('25525511135') -> ['255.255.11.135', '255.255.111.35']
restore_ip('0000') -> ['
0.0.0.0']
restore_ip('1010011256') -> ['
10.100.112.56']

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

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

Люди, которые работали с JQuery, это пост для вас. Теперь в Python можно работать с XML файлами так же, как и в JQuery.

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

Поиск, манипуляция с атрибутами и работа с CSS проходит практически так же, как и в JQuery. После работы вы можете получить новый HTML, вызвав у главного объекта .html().

Поскольку это всё таки не JavaScript, у модуля есть ограничения, которые описаны в документации.

#миниурок #pyquery