⚡️ Делаем приложение более стабильным
Вот вы отправили запрос, но сервер был очень занят и откинул ваш запрос. Вы получили в результате ошибку и приложение перестало работать.
Проверка на ошибку и новая отправка может сильно затруднить код, поэтому советую попробовать retrying.
Установка:
#миниурок #retrying
Вот вы отправили запрос, но сервер был очень занят и откинул ваш запрос. Вы получили в результате ошибку и приложение перестало работать.
Проверка на ошибку и новая отправка может сильно затруднить код, поэтому советую попробовать retrying.
Установка:
pip install retrying
Модуль заново запускает функцию, если она завершилась неудачно или не так, как вы хотели. Всё это очень хорошо контролируется за счёт параметров. #миниурок #retrying
⚡️ Задачка с собеседования | #Easy
Условие:
Нужно перевести RGB в HEX формат.
Пример:
rgb_to_hex(255, 255, 255) ➞ 'FFFFFF'
rgb_to_hex(127, 13, 253) ➞ '7F0DFD'
rgb_to_hex(0, 0, 0) ➞ '000000'
📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇
#Задачка_с_собеседования
Условие:
Нужно перевести RGB в HEX формат.
Пример:
rgb_to_hex(255, 255, 255) ➞ 'FFFFFF'
rgb_to_hex(127, 13, 253) ➞ '7F0DFD'
rgb_to_hex(0, 0, 0) ➞ '000000'
📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇
#Задачка_с_собеседования
⚡️ Форматирование строк
С помощью функции format или за счёт f-строк мы можем быстро добавлять значения в строку и применять для неё какие-то правила.
Передаются имена переменных, которые надо подставить внутри фигурных скобок ({}). После можем поставить двоеточие (:) и написать правила для форматирования строки.
Таким образом мы можем заполнять строки какими-то числами, переводить их в другие системы счисления или, даже, выбирать, как будет выводится время.
Подробнее обо всём в документации.
#теория
С помощью функции format или за счёт f-строк мы можем быстро добавлять значения в строку и применять для неё какие-то правила.
Передаются имена переменных, которые надо подставить внутри фигурных скобок ({}). После можем поставить двоеточие (:) и написать правила для форматирования строки.
Таким образом мы можем заполнять строки какими-то числами, переводить их в другие системы счисления или, даже, выбирать, как будет выводится время.
Подробнее обо всём в документации.
#теория
Что выведет код выше?
Anonymous Quiz
23%
[{1, 2}, {1, 2}]
27%
[{1, 2}, {1}]
10%
[{1, 2}]
30%
Ошибку
11%
Узнать ответ
⚡️ Цепочка обязанностей (Chain of Responsibility)
Это паттерн, который позволяет передавать запрос по цепочке обработчиков. Обработчики могут в любой момент прервать передачу запроса.
Также, таким образом мы можем избавится от большого количества if-ов в одном файле и перенести их в отдельные классы.
Возьмём, к примеру, обработку доступа к файлу. Первым делом вы проверяете, авторизован ли пользователь, после является ли он админом. И если вас попросят добавить ещё проверку, сделать это будет намного проще.
#паттерны #CoR
Это паттерн, который позволяет передавать запрос по цепочке обработчиков. Обработчики могут в любой момент прервать передачу запроса.
Также, таким образом мы можем избавится от большого количества if-ов в одном файле и перенести их в отдельные классы.
Возьмём, к примеру, обработку доступа к файлу. Первым делом вы проверяете, авторизован ли пользователь, после является ли он админом. И если вас попросят добавить ещё проверку, сделать это будет намного проще.
#паттерны #CoR
⚡️ Задачка с собеседования | #Easy
Условие:
Вам нужно написать простенькую программу для обработки кода. Она работает так, если команда:
· 'i', то мы добавляем к числу 1 (которое изначально 0)
· 'd', то мы забираем у числа единицу
· 's', то мы возводим значение в квадрат
· 'o', то мы добавляем число в массив, который после возвращаем
Если вам встречаются другие символы, просто игнорируйте их.
Пример:
parse('ooo') ➞ [0, 0, 0]
parse('iiisdoso') ➞ [8, 64]
parse('isoisoiso') ➞ [1, 4, 25]
📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇
#Задачка_с_собеседования
Условие:
Вам нужно написать простенькую программу для обработки кода. Она работает так, если команда:
· 'i', то мы добавляем к числу 1 (которое изначально 0)
· 'd', то мы забираем у числа единицу
· 's', то мы возводим значение в квадрат
· 'o', то мы добавляем число в массив, который после возвращаем
Если вам встречаются другие символы, просто игнорируйте их.
Пример:
parse('ooo') ➞ [0, 0, 0]
parse('iiisdoso') ➞ [8, 64]
parse('isoisoiso') ➞ [1, 4, 25]
📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇
#Задачка_с_собеседования
⚡️ Погадаем?
aztro — проект, предоставляющий информацию о гороскопе и астрологии в режиме реального времени через HTTP API. А PyAztro — интерфейс для взаимодействия с ним.
Установка:
Вы можете получить доступ к гороскопу на этот день, предыдущий (yesterday) или завтрашний (tomorrow). Подробнее в документации.
P.S. На фото выше гороскоп на сегодня для Овен. Файл с кодом будет в комментариях.
aztro — проект, предоставляющий информацию о гороскопе и астрологии в режиме реального времени через HTTP API. А PyAztro — интерфейс для взаимодействия с ним.
Установка:
pip install pyaztro
Вы составляете запрос, передавая знак зодиака, после получаете класс с совместимостью, счастливым числом, цветом, временем и всем, что есть в гороскопах. Вы можете получить доступ к гороскопу на этот день, предыдущий (yesterday) или завтрашний (tomorrow). Подробнее в документации.
P.S. На фото выше гороскоп на сегодня для Овен. Файл с кодом будет в комментариях.
⚡️ Поиск в ширину
Тут про DFS. А в этот раз поговорим про breadth-first Search — алгоритм, способный быстро и без ограничений пройтись по графу.
Алгоритм: Сначала берём стартовую вершину и добавляем в очередь. После вытаскиваем её из очереди и добавляем соседей. С соседями делаем тоже самое, что и с первой вершиной.
BFS часто используют для вычисления расстояния между вершинами, поиска кратчайшего пути.
#алгоритмы #графы
Тут про DFS. А в этот раз поговорим про breadth-first Search — алгоритм, способный быстро и без ограничений пройтись по графу.
Алгоритм: Сначала берём стартовую вершину и добавляем в очередь. После вытаскиваем её из очереди и добавляем соседей. С соседями делаем тоже самое, что и с первой вершиной.
BFS часто используют для вычисления расстояния между вершинами, поиска кратчайшего пути.
#алгоритмы #графы
⚡️ Задачка с собеседования | #Medium
Условие:
Напишите функцию, которая принимает список чисел и переносит все нули в его конец. Функция не должна ничего возвращать, она только меняет существующий массив.
Придумайте решение без append, pop и remove, это довольно медленные операции.
Пример:
move_zeros([1, 0, 0]) ➞ [1, 0, 0]
move_zeros([1, 0, 5]) ➞ [1, 5, 0]
move_zeros([0, 0, 1]) ➞ [1, 0, 0]
📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇
#Задачка_с_собеседования
Условие:
Напишите функцию, которая принимает список чисел и переносит все нули в его конец. Функция не должна ничего возвращать, она только меняет существующий массив.
Придумайте решение без append, pop и remove, это довольно медленные операции.
Пример:
move_zeros([1, 0, 0]) ➞ [1, 0, 0]
move_zeros([1, 0, 5]) ➞ [1, 5, 0]
move_zeros([0, 0, 1]) ➞ [1, 0, 0]
📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇
#Задачка_с_собеседования
⚡️ Фишка срезов
С помощью срезов мы можем не просто получать определённое количество элементов, а и менять их. Называют это так: «Изменение путем присваивания».
Таким образом мы заменяем элементы внутри этого среза другими из итератора (список, кортёж, словарь, range).
С их помощью мы также можем добавлять/удалять элементы, опустошать список и многое другое. Но в разреженных срезах такое не работает.
#теория
С помощью срезов мы можем не просто получать определённое количество элементов, а и менять их. Называют это так: «Изменение путем присваивания».
Таким образом мы заменяем элементы внутри этого среза другими из итератора (список, кортёж, словарь, range).
С их помощью мы также можем добавлять/удалять элементы, опустошать список и многое другое. Но в разреженных срезах такое не работает.
#теория