Python Community
12.8K subscribers
1.25K photos
38 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
⚡️ Ответ на предыдущую задачу
⚡️ Создаём интерфейсы для взаимодействия

В этом нам поможет hug — удобный фреймворк, позволяющий быстро создавать API для нескольких интерфейсов.

Установка: pip3 install hug

На данный момент hug является самым быстрым способом создания API-интерфейсов на Python3. Он поддерживает HTTP обработку, cli (командную строку) или локальный запуск скрипта.

Для работы с ним вам нужно просто импортировать модуль, настроить интерфейс (hug.local, hug.get, hug.cli) и запустить скрипт с помощью команды hug -f file.py из терминала.

#миниурок #hug
Что выведет код выше?
Anonymous Quiz
14%
1
12%
2
11%
3
49%
4
13%
Узнать ответ
⚡️ Получаем словарь c переменными

globals, locals, vars — всё это функции, позволяющие узнать о используемых в данный момент переменных.

Вот, что они делают:

globals() — возвращает словарь со всеми переменными в конкретном модуле (внутри которого записана функция).

locals() — возвращает словарь значений из текущего пространства имён. Если это модуль, то вернёт то же, что и globals, иначе — переменные внутри функции.

vars(object) — возвращает атрибут __dict__ из object, если аргумент задан. Иначе работает так же как locals или globals.

Подробнее: locals, globals, vars.
👍1
⚡️ Задачка с собеседования | #Medium

Условие:

Написать функцию, которая будет переворачивать только буквы. То есть внутри строки переместиться с начала в конец должны только буквы, остальные символы (-, =, числа и т.д.) должны остаться на своём месте.

Пример:

reverse_letters("a-bC-dEf-ghIj") -> j-Ih-gfE-dCba
reverse_letters("a-bC=Def+GHi3") -> i-HG=feD+Cba3
reverse_letters("7_28]") -> 7_28]

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

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

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

Работать с ней в нашем любимом языке можно с помощью предустановленного модуля — sqlite3.

Для начала, стоит подключить базу данных с помощью метода connect(file_path), после — взять курсор с помощью con.cursor() и выполнить действие, используя execute(data, params).

Считывание данных происходит с помощью cursor.fetchall() или cursor.fetchone().

А ещё больше об этом модуле можете прочитать на сайте документации.

#миниурок #sqlite3
⚡️ Операции над множествами

Множества — набор не повторяющихся значений. Создать их можно с помощью set(iter) или используя фигурные скобки ({})

Над множествами можно проводить такие операции:

• Разность (-) — убираем из a все элементы b.

• Пересечение (&) — все элементы и в a, и в b

• Объединение (|) — все элементы, что есть в a или в b

• Симметричное вычитание (^) — все элементы, что есть в a или b но не в обоих множествах

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

Условие:

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


Теперь задача в том, чтобы сделать наоборот: перевести число в римскую систему чисел. (про символы можно почитать тут).

Значения на входе всегда будут в таком промежутке: 1 <= x <= 4000

Пример:

to_roman(1999) -> MCMXCIX
to_roman(1) -> I
to_roman(1000) -> M
to_roman(21) -> XXI

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

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

В Python существует интересный модуль под названием dis, позволяющий залезть «под капот».

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

Для экспериментов вам может пригодиться только метод dis, который принимает классы или функции.

Если вам стало интересно, то вы можете перейти на сайт документации.

#миниурок #dis
⚡️ Отсутствующие элементы в словаре

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

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

Примерно так же, как и на фото выше, реализован класс defaultdict из модуля collections.

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

Условие:

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

Внутри ссылки может быть протокол, путь к файлу, данные, переданные через запрос get, а может и не быть. Всё это необходимо учитывать. Также стоит предусмотреть, что протоколы могут быть разные (http, ftp, https, etc).

Пример:

get_domain("https://xakep.ru/page") -> xakep.ru
get_domain("http://api.github.com") -> api.github.com
get_domain("google.com") -> google.com

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

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

Для этого существует библиотека, как ни странно, qrcode. Она работает с pillow, поэтому придётся установить и его.

Установка: pip install qrcode[pil]

Самый простой способ создания изображения — использование метода make(some_text).

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

Также, вы можете использовать модуль из терминала: qr "Some text" > test.png

Подробнее об этом можно почитать на сайте документации.

#миниурок #qrcode