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

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

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

РКН реестр:
https://knd.gov.ru/license?id=67847dd98e552d6b54a511ed&registryType=bloggersPermission
Download Telegram
⚡️ Задачка с собеседования | #Easy

Условие:

Вам нужно получить наибольшее число из цифр входящего числа.

Пример:

digits_order(1234) -> 4321
digits_order(151) -> 511
digits_order(0) -> 0

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

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

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

nonlocal оповещает о работе с идентификатором более высшего уровня доступа. Также требует, чтобы переменная уже была определена.

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

#теория
👍1
⚡️ Цепочка операторов

В 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}' — форматирует строку на основе правил, описанных тут.

#теория