⚡️ Переводим объект в строку
Думаем, вы понимаете, что практически невозможно передать объект по http(s) протоколу в его чистом виде. Поэтому придумали marshmallow — модуль, переводящий объекты в текст и обратно.
Установка:
После вызываем у схемы
Это, конечно, ещё не всё. Подробнее о модуле можете вы почитать тут.
#миниурок #marshmallow
Думаем, вы понимаете, что практически невозможно передать объект по http(s) протоколу в его чистом виде. Поэтому придумали marshmallow — модуль, переводящий объекты в текст и обратно.
Установка:
pip install marshmallow
Schema
, fields
— самое важное, что вам надо знать. Schema
— базовый класс для всех схем с данными. Он состоит из полей, которые создаются с помощью fields
.После вызываем у схемы
dump
и load
, методы, позволяющие переводить строку в объект и обратно.Это, конечно, ещё не всё. Подробнее о модуле можете вы почитать тут.
#миниурок #marshmallow
⚡️ Задачка с собеседования | #Medium
Условие:
Вам необходимо написать функцию, которая переводит hls в rgb. Результат округлить до сотых.
Примеры:
convert_to_rgb(1, 1, 1) -> (1, 1.0, 1.0)
convert_to_rgb(0.9, 0.5, 0.5) -> (0.75, 0.25, 0.55)
convert_to_rgb(0.72, 0.624, 0.48) -> (0.56, 0.44, 0.8)
Подсказка: почитайте про модуль colorsys
📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇
#Задачка_с_собеседования
Условие:
Вам необходимо написать функцию, которая переводит hls в rgb. Результат округлить до сотых.
Примеры:
convert_to_rgb(1, 1, 1) -> (1, 1.0, 1.0)
convert_to_rgb(0.9, 0.5, 0.5) -> (0.75, 0.25, 0.55)
convert_to_rgb(0.72, 0.624, 0.48) -> (0.56, 0.44, 0.8)
Подсказка: почитайте про модуль colorsys
📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇
#Задачка_с_собеседования
⚡️ Кэшируем результат работы метода
Кэширование — действительно полезная вещь, если у вас есть тяжёлые математические операции. Оно уменьшает использование процессора, но потребляет ОЗУ.
Декораторы cache и cached_property как раз созданы для этой задачи. Они создают словарь по типу «Входные данные : результат» и сохраняют туда результат работы функции.
cached_property — это то же самое, что и
Если вы пользуетесь версией старее python 3.9, то воспользуйтесь декоратором lru_cache.
Если вам стало интересно, посетите документацию.
#миниурок #cache
Кэширование — действительно полезная вещь, если у вас есть тяжёлые математические операции. Оно уменьшает использование процессора, но потребляет ОЗУ.
Декораторы cache и cached_property как раз созданы для этой задачи. Они создают словарь по типу «Входные данные : результат» и сохраняют туда результат работы функции.
cached_property — это то же самое, что и
@cache @property
. И, поскольку это свойство, используется только в классах.Если вы пользуетесь версией старее python 3.9, то воспользуйтесь декоратором lru_cache.
Если вам стало интересно, посетите документацию.
#миниурок #cache
⚡️ Задачка с собеседования | #Easy
Условие:
В этот раз вам необходимо узнать, является ли число — числом Армстронга?
Примеры:
num_armstrong(7) -> True
num_armstrong(371) -> True # 3^3 + 7^3 + 1^3 = 371
num_armstrong(120) -> False
📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇
#Задачка_с_собеседования
Условие:
В этот раз вам необходимо узнать, является ли число — числом Армстронга?
Примеры:
num_armstrong(7) -> True
num_armstrong(371) -> True # 3^3 + 7^3 + 1^3 = 371
num_armstrong(120) -> False
📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇
#Задачка_с_собеседования
⚡️ Open и режимы чтения/записи
Функция open используется для работы с файловой системой и у неё есть несколько режимов работы. О них мы сейчас и поговорим.
r — открывает файл для чтения и только. w — открывает файл для записи, но перед этим полностью его очищает.
x — создаёт новый файл или выдаёт ошибку, если он уже существует. a — открывает файл для записи добавляя в конец данные. Выдаёт ошибку, если файла не существует.
+ — дополнение, открывает файл для чтения и записи. Разница между w+ и r+ в том, что в первом случае файл очищается.
b, t — открывает файл в бинарном или текстовом режиме. То есть позволяет работать с байтами или с текстом. По умолчанию — t.
#теория
Функция open используется для работы с файловой системой и у неё есть несколько режимов работы. О них мы сейчас и поговорим.
r — открывает файл для чтения и только. w — открывает файл для записи, но перед этим полностью его очищает.
x — создаёт новый файл или выдаёт ошибку, если он уже существует. a — открывает файл для записи добавляя в конец данные. Выдаёт ошибку, если файла не существует.
+ — дополнение, открывает файл для чтения и записи. Разница между w+ и r+ в том, что в первом случае файл очищается.
b, t — открывает файл в бинарном или текстовом режиме. То есть позволяет работать с байтами или с текстом. По умолчанию — t.
#теория
Что выведет код выше?
Anonymous Quiz
32%
True True
22%
False False
26%
True False
9%
False True
11%
Узнать ответ
⚡️ Тестируем код
Тестирование — очень важный процесс при создании приложения. Оно помогает избежать ошибок при изменение кода. Делать всё ручками — очень долго, поэтому воспользуемся unittest.
Первым делом нам надо создать класс, который будет тестировать функционал, и унаследовать его от
После — создаём парочку функций, начинающихся с
Более подробную информацию можно посмотреть на странице документации.
#миниурок #unittest
Тестирование — очень важный процесс при создании приложения. Оно помогает избежать ошибок при изменение кода. Делать всё ручками — очень долго, поэтому воспользуемся unittest.
Первым делом нам надо создать класс, который будет тестировать функционал, и унаследовать его от
TestCase
(или другого класса, зависит от ваших потребностей).После — создаём парочку функций, начинающихся с
test
, и сравниваем результат работы используя assert*.Более подробную информацию можно посмотреть на странице документации.
#миниурок #unittest
⚡️ Задачка с собеседования | #Easy
Условие:
Необходимо перевести hex строку в rgb. Функция принимает строку с hex, а возвращает кортеж с тремя элементами: r, g ,b. Входные данные всегда будут правильные, их проверять не нужно.
Примеры:
hex_to_rgb('ffffff') -> (255, 255, 255)
hex_to_rgb('000000') -> (0, 0, 0)
hex_to_rgb('12A2B6') -> (18, 162, 182)
📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇
#Задачка_с_собеседования
Условие:
Необходимо перевести hex строку в rgb. Функция принимает строку с hex, а возвращает кортеж с тремя элементами: r, g ,b. Входные данные всегда будут правильные, их проверять не нужно.
Примеры:
hex_to_rgb('ffffff') -> (255, 255, 255)
hex_to_rgb('000000') -> (0, 0, 0)
hex_to_rgb('12A2B6') -> (18, 162, 182)
📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇
#Задачка_с_собеседования
⚡️ Генерируем пароли
Знаете, в чём проблема модуля random? Он генерирует псевдослучайные числа. То есть, зная некоторую информацию, вы можете предсказать результат работы.
Но разработчики решили и эту проблему. В python 3.6 они добавили модуль secrets, который должен использоваться для криптографии.
#миниурок #secrets
Знаете, в чём проблема модуля random? Он генерирует псевдослучайные числа. То есть, зная некоторую информацию, вы можете предсказать результат работы.
Но разработчики решили и эту проблему. В python 3.6 они добавили модуль secrets, который должен использоваться для криптографии.
secrets.choice(seq)
— выбирает случайные значения из последовательности.token_bytes
, token_hex
, token_urlsafe
— генерирует случайный токен, состоящий из битов, строки с 16-ричными значениями или случайными символами, доступными для передачи по URL.#миниурок #secrets
Что выведет код выше?
Anonymous Quiz
40%
True True
18%
False False
26%
True False
6%
False True
9%
Узнать ответ
⚡️ Используем вики
wikipedia — удобная библиотека, которая создаёт запрос и обрабатывает ответ.
Установка:
#миниурок #wikipedia
wikipedia — удобная библиотека, которая создаёт запрос и обрабатывает ответ.
Установка:
pip install wikipedia
search(req)
— выполняет поиск по википедии и возвращает список с возможными результатами.page(req)
— находит страницу по запросу req, возвращает класс WikipediaPage
.summary(req)
— возвращает краткую информацию по искомому материалу.#миниурок #wikipedia
⚡️ Задачка с собеседования | #Easy
Условие:
Вам нужно отсортировать список с оценками на основе английской системы. Всего 5 символов, в порядке убывания: A, B, C, D, F.
Примеры:
sort_grades(['A', 'B', 'C', 'C', 'F', 'A']) -> ['F', 'C', 'C', 'B', 'A', 'A']
sort_grades(['b', 'c', 'C', 'f', 'A']) -> ['F', 'C', 'C', 'B', 'A']
sort_grades([]) -> []
📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇
#Задачка_с_собеседования
Условие:
Вам нужно отсортировать список с оценками на основе английской системы. Всего 5 символов, в порядке убывания: A, B, C, D, F.
Примеры:
sort_grades(['A', 'B', 'C', 'C', 'F', 'A']) -> ['F', 'C', 'C', 'B', 'A', 'A']
sort_grades(['b', 'c', 'C', 'f', 'A']) -> ['F', 'C', 'C', 'B', 'A']
sort_grades([]) -> []
📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇
#Задачка_с_собеседования
⚡️ Создаём уникальные идентификаторы
UUID — стандарт, позволяющий задать уникальный номер. Например, для 10 триллионов uuid, шанс появления одинаковых значений будет 0.00000006.
Для работы с ним в python существует модуль uuid. У этого протока есть 5 версий, но мы рассмотрим только три:
Если вам стало интересно, то, как обычно, рекомендуем посетить документацию.
#миниурок #uuid
UUID — стандарт, позволяющий задать уникальный номер. Например, для 10 триллионов uuid, шанс появления одинаковых значений будет 0.00000006.
Для работы с ним в python существует модуль uuid. У этого протока есть 5 версий, но мы рассмотрим только три:
uuid1()
— Генерирует уникальный номер на основе MAC-адреса и времени во время создания.uuid3(namespace, name)
— Создаёт уникальное число на основе namespace
(uuid) и name
(string).uuid4()
— просто генерирует случайное значение.Если вам стало интересно, то, как обычно, рекомендуем посетить документацию.
#миниурок #uuid
⚡️ Задачка с собеседования | #Medium
Условие:
В этот раз вам нужно перевести время ожидания в понятный для человека формат. На вход идут секунды, а на выход строка, показывающая, сколько часов, минут и секунд осталось ждать
Примеры:
to_human_dur(1) -> '1 second'
to_human_dur(62) -> '1 minute and 2 seconds'
to_human_dur(3600) -> '1 hour'
to_human_dur(3662) -> '1 hour, 1 minute and 2 seconds'
📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇
#Задачка_с_собеседования
Условие:
В этот раз вам нужно перевести время ожидания в понятный для человека формат. На вход идут секунды, а на выход строка, показывающая, сколько часов, минут и секунд осталось ждать
Примеры:
to_human_dur(1) -> '1 second'
to_human_dur(62) -> '1 minute and 2 seconds'
to_human_dur(3600) -> '1 hour'
to_human_dur(3662) -> '1 hour, 1 minute and 2 seconds'
📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇
#Задачка_с_собеседования