Python Community
12.9K subscribers
1.26K photos
36 videos
15 files
738 links
Python Community RU - СНГ сообщество Python-разработчиков

Чат канала: @python_community_chat

Сотрудничество: @cyberJohnny и @Sergey_bzd

РКН реестр:
https://knd.gov.ru/license?id=67847dd98e552d6b54a511ed&registryType=bloggersPermission
Download Telegram
⚡️ Асинхронная замена requests

С помощью aiohttp мы можем не только составлять запросы, а и создавать HTTP-серверы.

Установка: pip install aiohttp
Для более быстрой работы DNS запросов стоит установить aiodns: pip install aiodns.

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

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

Условие:

Некоторые числа имеют забавные свойства: 695 —> 6² + 9³ + 5⁴= 1390 = 695 * 2. Похоже на формулу (a ^ p + b ^ (p+1) + c ^ (p+2) + d ^ (p+3) + ...) = n * k, в которой вы получаете число и p, а вам нужно найти k. Если брать первый пример, то это будет 2. Если же такое число найти невозможно, то возвращаем -1.

Пример:

dig_pow(89, 1) -> 1 # 8¹ + 9² = 89 * 1
dig_pow(46288, 3) -> 51
dig_pow(92, 1) -> -1

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

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

pyaudio
— это кроссплатформенная библиотека, способная записывать и воспроизводить звук.

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

Модуль действительно может решать множество задач, но новичкам будет в нём сложно разобраться, ведь это low level разработка.

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

#миниурок #pyaudio
Что выведет код выше?
Anonymous Quiz
14%
3
45%
4
6%
5
26%
Ошибку
8%
Узнать ответ
⚡️ Что такое декоратор?

Это — вызываемый объект (функция, класс с 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
👍1
⚡️ Переводим с помощью гугла

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

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

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

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

#миниурок #googletrans