Python Community
13.1K subscribers
1.24K photos
26 videos
15 files
713 links
Python Community RU - СНГ сообщество Python-разработчиков

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

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

РКН реестр:
https://knd.gov.ru/license?id=67847dd98e552d6b54a511ed&registryType=bloggersPermission
Download Telegram
⚡️ Цепочка операторов

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

Работает это со всеми операторами сравнения (<, ==, >, ...), [not] is и [not] in. Цепь может состоять из любого количества операторов.

Стоит отметить, что a op1 b op2 c не создаёт никаких связей между a и b, поэтому можно писать так: x < y > z.

Подробнее

#теория
⚡️ Задачка с собеседования | #Easy

Условие:

Вам нужно найти строку с наивысшим балом. Бал каждого слова — сума позиций всех букв (a = 1, b = 2).

Если встречаются два слова с одинаковым кол-вом баллов, верните первое. Все слова на входе правильные и состоят из букв англ алфавита в нижнем регистре.

Пример:

highest('do you wanna coffee') -> 'you'
highest('abcd dbcai') -> 'dbcai'
highest('aa b') -> 'aa'
highest('d bb') -> 'd'

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

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

Тим Петерс
решил составить правила для написания хорошего кода и назвал его «Дзен Python». Прочитать их можно, выполнив import this.

Правил должно быть 20, но одного не хватает. Тим предложил заполнить пробел создателю Python, но это место до сих пор пустует.

Автор хотел таким образом сказать, что в любом правиле есть исключения.

P. S. Посмотрите код модуля и перечитайте правила :)

#теория
Что выведет код выше?
Anonymous Quiz
11%
[None]
17%
[[...]]
36%
[[]]
13%
[]
22%
Ошибку
⚡️ Исправляем неграмотных англичан

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

Установка: pip3 install -U git+https://github.com/PrithivirajDamodaran/Gramformer.git

В основном вам нужны только методы correct(text) и highlight(text) класса Gramformer(), используемые для исправления и генерации XML кода подсветки ошибок.

P.S. Он обучен только на предложениях, поэтому пока не подходит для абзацев, а уж тем более статей.

#миниурок #gramformer
⚡️ Пишем бота для gmail

smtplib
— модуль, позволяющий создавать соединения с SMTP сервером. Эта технология используется для управления почтой, отправки и получения сообщений.

Нам нужны сервера Google, поэтому заходим сюда и ищем их. После — заходим с использованием своего аккаунта Google.

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

Подробнее, как обычно, можно почитать в документации.

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

Условие:

Вам нужно узнать, является ли число квадратом какого-то числа. На вход идёт целое число.

Пример:

is_square(4) -> True
is_square(2) -> False
is_square(-5) -> False

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

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

Это модуль, позволяющий взаимодействовать с программой из терминала. Он поставляется с хорошими настройками по умолчанию, но легко настраивается.

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

Библиотека самостоятельно сгенерирует страницу помощи (--help) на основе полученных команд и их параметрах.

За счёт декораторов, мы пишем минимум кода, чем не может похвастаться argparse. Из минусов — нет автозаполнения, но такое решение аргументируется тут.

Подробнее в документации

#миниурок #click
⚡️ Префиксы строк

В Python можно встретить определение строки по типу r'some t string' или b'send data', но что r, b, f значат?

r'raw string' — означает, что строка не обрабатывается. То есть t, n, ' останется именно таким, как оно записано.

b'Bytes literal' — переводит строку, которая содержит только символы ASCII, в набор байтов.

f'score: {score}' — форматирует строку на основе правил, описанных тут.

#теория
⚡️ Сравнение последовательности

Такие типы, как строки, кортежи или списки можно сравнивать: больше они или меньше. Но вот как это происходит?

Все значения внутри последовательности сравниваются по очереди. В первом примере, 1 < 1 => False; 2 < 2 => False; 3 < 4 => True, в итоге результат будет True.

Стоит отметить, что сравнивать можно только одни и те же типы. список > список, строка < строка. Кстати, символы строки сравниваются с использованием ord(char).

#теория
⚡️Определяем кодировку текста

Текст переводится из набора байтов в символы, которые мы видим с помощью кодировок. Узнать, какую кодировку использует текст, можно с помощью chardet.

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

Можно запустить приложение из терминала: chardetect somefile или импортировать его в python: from chardet import detect.

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