⚡️ Создаём интерфейсы для взаимодействия
В этом нам поможет hug — удобный фреймворк, позволяющий быстро создавать API для нескольких интерфейсов.
Установка:
Для работы с ним вам нужно просто импортировать модуль, настроить интерфейс (
#миниурок #hug
В этом нам поможет hug — удобный фреймворк, позволяющий быстро создавать API для нескольких интерфейсов.
Установка:
pip3 install hug
На данный момент hug является самым быстрым способом создания API-интерфейсов на Python3. Он поддерживает HTTP обработку, cli (командную строку) или локальный запуск скрипта.Для работы с ним вам нужно просто импортировать модуль, настроить интерфейс (
hug.local
, hug.get
, hug.cli
) и запустить скрипт с помощью команды hug -f file.py
из терминала.#миниурок #hug
⚡️ Получаем словарь c переменными
Вот, что они делают:
Подробнее: locals, globals, vars.
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]
📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇
#Задачка_с_собеседования
Условие:
Написать функцию, которая будет переворачивать только буквы. То есть внутри строки переместиться с начала в конец должны только буквы, остальные символы (-, =, числа и т.д.) должны остаться на своём месте.
Пример:
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.
Для начала, стоит подключить базу данных с помощью метода
Считывание данных происходит с помощью
А ещё больше об этом модуле можете прочитать на сайте документации.
#миниурок #sqlite3
SQLite — популярная база данных, основным преимуществом которой является то, что все данные хранятся в одном файле.
Работать с ней в нашем любимом языке можно с помощью предустановленного модуля — sqlite3.
Для начала, стоит подключить базу данных с помощью метода
connect(file_path)
, после — взять курсор с помощью con.cursor()
и выполнить действие, используя execute(data, params)
.Считывание данных происходит с помощью
cursor.fetchall()
или cursor.fetchone()
.А ещё больше об этом модуле можете прочитать на сайте документации.
#миниурок #sqlite3
Что выведет код выше?
Anonymous Quiz
30%
['a', 'b', 'c', 'd', 'e']
22%
['a', 'c', 'd', 'e']
8%
['a', 'b', 'c']
8%
['a', 'c']
31%
Ошибку
⚡️ Операции над множествами
Множества — набор не повторяющихся значений. Создать их можно с помощью
Над множествами можно проводить такие операции:
• Разность (-) — убираем из a все элементы b.
• Пересечение (&) — все элементы и в a, и в b
• Объединение (|) — все элементы, что есть в a или в b
• Симметричное вычитание (^) — все элементы, что есть в a или b но не в обоих множествах
#теория
Множества — набор не повторяющихся значений. Создать их можно с помощью
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
📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇
#Задачка_с_собеседования
Условие:
Ранее мы делали задачку, где надо было перевести римские числа в десятичную систему.
Теперь задача в том, чтобы сделать наоборот: перевести число в римскую систему чисел. (про символы можно почитать тут).
Значения на входе всегда будут в таком промежутке: 1 <= x <= 4000
Пример:
to_roman(1999) -> MCMXCIX
to_roman(1) -> I
to_roman(1000) -> M
to_roman(21) -> XXI
📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇
#Задачка_с_собеседования
⚡️ Дизассемблируем код
В Python существует интересный модуль под названием dis, позволяющий залезть «под капот».
Этот модуль помогает анализировать CPython байткод, разбирая его. Это один из тех модулей, который позволяет поиграться с языком и изучить его подробнее.
Для экспериментов вам может пригодиться только метод dis, который принимает классы или функции.
Если вам стало интересно, то вы можете перейти на сайт документации.
#миниурок #dis
В Python существует интересный модуль под названием dis, позволяющий залезть «под капот».
Этот модуль помогает анализировать CPython байткод, разбирая его. Это один из тех модулей, который позволяет поиграться с языком и изучить его подробнее.
Для экспериментов вам может пригодиться только метод dis, который принимает классы или функции.
Если вам стало интересно, то вы можете перейти на сайт документации.
#миниурок #dis
Что выведет код выше?
Anonymous Quiz
13%
('foo',)
27%
('foo', 'qux')
42%
Произошла ошибка
8%
Ошибку
10%
Узнать ответ
⚡️ Отсутствующие элементы в словаре
Словари довольно часто используются в работе, и вместо того, чтобы каждый раз получать ошибку при несуществующем ключе, можно просто переопределить её поведение.
В словарях вызывается метод
Примерно так же, как и на фото выше, реализован класс defaultdict из модуля collections.
#теория
Словари довольно часто используются в работе, и вместо того, чтобы каждый раз получать ошибку при несуществующем ключе, можно просто переопределить её поведение.
В словарях вызывается метод
__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
📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇
#Задачка_с_собеседования
Условие:
Ваша задача — написать функцию, которая должна узнать по ссылке сайт, к которому необходимо обратиться.
Внутри ссылки может быть протокол, путь к файлу, данные, переданные через запрос 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, поэтому придётся установить и его.
Установка:
Если же вам нужно больше настроек, то вы можете самостоятельно создать класс QRCode и передать ему настройки.
Также, вы можете использовать модуль из терминала:
#миниурок #qrcode
Для этого существует библиотека, как ни странно, qrcode. Она работает с pillow, поэтому придётся установить и его.
Установка:
pip install qrcode[pil]
Самый простой способ создания изображения — использование метода make(some_text)
.Если же вам нужно больше настроек, то вы можете самостоятельно создать класс QRCode и передать ему настройки.
Также, вы можете использовать модуль из терминала:
qr "Some text" > test.png
Подробнее об этом можно почитать на сайте документации.#миниурок #qrcode