⚡️ Взаимодействуем с JSON
JSON — текстовый формат для передачи данных. Внутри него удобно хранить данные, в некоторых случаях — настройки приложения. Работать с ним можно с помощью модуля json.
Если вам необходим больший функционал, то посетите страницу документации.
#миниурок #json
JSON — текстовый формат для передачи данных. Внутри него удобно хранить данные, в некоторых случаях — настройки приложения. Работать с ним можно с помощью модуля json.
json.loads(str)
— переводит строку в объект Python, например, в disct или list.json.dumps(obj)
— переводит объект в строку JSON. Если добавить sort_keys=True
и indent=4
, то можно получить красивый вывод.Если вам необходим больший функционал, то посетите страницу документации.
#миниурок #json
⚡️ Задачка с собеседования | #Easy
Условие:
Напишите функцию, которая проверяет, существует ли такой ipv4 адрес. В строке должно быть 4 числа, разделённых точкой, входящие в промежуток [0, 255].
Примеры:
check_ip('10.10.10.10') -> True
check_ip('255.255.255.254') -> True
check_ip('192.168.0.0') -> False
check_ip('192.168.0.1') -> True
check_ip('192.168.0.255') -> False
📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇
#Задачка_с_собеседования
Условие:
Напишите функцию, которая проверяет, существует ли такой ipv4 адрес. В строке должно быть 4 числа, разделённых точкой, входящие в промежуток [0, 255].
Примеры:
check_ip('10.10.10.10') -> True
check_ip('255.255.255.254') -> True
check_ip('192.168.0.0') -> False
check_ip('192.168.0.1') -> True
check_ip('192.168.0.255') -> False
📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇
#Задачка_с_собеседования
⚡️ Обрабатываем номер телефона
Для этого придумали модуль phonenumbers, позволяющий форматировать, парсить и проверять номера.
Установка:
И это ещё не всё. Подробнее о модуле можно почитать в документации.
#миниурок #phonenumbers
Для этого придумали модуль phonenumbers, позволяющий форматировать, парсить и проверять номера.
Установка:
pip install phonenumbers
parse(number, country)
— выводит полезную информацию о введённом номере.is_possible_number(num)
, is_valid_number(num)
— проверяют, может ли такой номер существовать и верный ли он.format_number(num)
— выводит номер в необходимом формате из перечисления PhoneNumberFormat.И это ещё не всё. Подробнее о модуле можно почитать в документации.
#миниурок #phonenumbers
⚡️ Работаем с таблицами
Для этого придумали модуль tablib, позволяющий быстро создавать, изменять и экспортировать таблицы.
Установка:
Подробнее с ней можете ознакомится на сайте документации.
#миниурок #tablib
Для этого придумали модуль tablib, позволяющий быстро создавать, изменять и экспортировать таблицы.
Установка:
pip install tablib
Dataset()
— основной класс, работающий с таблицой. Ниже будут его методы.append(data)
— заполняет таблицу, используя итерируемый объект из data.export(type)
— очень удобная функция, позволяющая сохранять таблицу в различных форматах.Подробнее с ней можете ознакомится на сайте документации.
#миниурок #tablib
⚡️ Задачка с собеседования | #Easy
Условие:
На вход идёт сортированный список из нескольких чисел и передаётся вторым параметром число, которое надо найти. Если цель присутствует в списке, то нужно вернуть её индекс. Иначе — индекс, в котором можно было бы её добавить для сохранения порядка.
Примеры:
insert_into([1, 2, 3, 5, 6], 4) -> 3
insert_into([1, 2, 4, 5], 4) -> 2
insert_into([1, 3, 2, 6], -1) -> 0
📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇
#Задачка_с_собеседования
Условие:
На вход идёт сортированный список из нескольких чисел и передаётся вторым параметром число, которое надо найти. Если цель присутствует в списке, то нужно вернуть её индекс. Иначе — индекс, в котором можно было бы её добавить для сохранения порядка.
Примеры:
insert_into([1, 2, 3, 5, 6], 4) -> 3
insert_into([1, 2, 4, 5], 4) -> 2
insert_into([1, 3, 2, 6], -1) -> 0
📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇
#Задачка_с_собеседования
⚡️ Работаем с DOM
Для этого в Python существует модуль xml.dom или, с минимальной реализацией, xml.dom.minidom, о котором мы и поговорим.
Подробнее же об объектах можете почитать на сайте документации.
#миниурок #xml #dom
Для этого в Python существует модуль xml.dom или, с минимальной реализацией, xml.dom.minidom, о котором мы и поговорим.
parse(file)
— считывает и парсит модель из файла file. Возвращает Document из того же модуля. parseString(str)
— парсит DOM из строки. Возвращает тот же Document, что и parse.Подробнее же об объектах можете почитать на сайте документации.
#миниурок #xml #dom
⚡️ Собираем информацию об объекте
С помощью модуля inspect можно получить множество полезной информации о модуле, классе или функции. Это может быть, например, исходный код, сигнатура или название файла.
Если вам стало интересно, что ещё может этот модуль, то советую посетить документацию.
#миниурок #inspect
С помощью модуля inspect можно получить множество полезной информации о модуле, классе или функции. Это может быть, например, исходный код, сигнатура или название файла.
inspect.getsource(obj)
— возвращает исходный код модуля, класса, функции, или выбрасывает OSError.inspect.signature(func)
— показывает, как определены параметры у функции. Если вам стало интересно, что ещё может этот модуль, то советую посетить документацию.
#миниурок #inspect
⚡️ Задачка с собеседования | #Hard
Условие:
В этот раз вам необходимо создать код, который из списка с целыми числами создаёт все возможные подмножества. Важно, что бы подмножества не повторялись.
Примеры:
subsets([1, 2, 2]) -> [[], [1], [2], [1, 2], [2, 2], [1, 2, 2]]
subsets([1, 2, 3]) -> [[], [1], [2], [1, 2], [3], [1, 3], [2, 3], [1, 2, 3]]
subsets([0]) -> [[], [0]]
📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇
#Задачка_с_собеседования
Условие:
В этот раз вам необходимо создать код, который из списка с целыми числами создаёт все возможные подмножества. Важно, что бы подмножества не повторялись.
Примеры:
subsets([1, 2, 2]) -> [[], [1], [2], [1, 2], [2, 2], [1, 2, 2]]
subsets([1, 2, 3]) -> [[], [1], [2], [1, 2], [3], [1, 3], [2, 3], [1, 2, 3]]
subsets([0]) -> [[], [0]]
📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇
#Задачка_с_собеседования
⚡️ Аннотация типов. Часть 3
Помимо того, что было описано в первой и второй части, вы можете создавать особые типы, псевдонимы и использовать обобщения.
Псевдонимы создаются так же, как и переменные,
Особые типы создаются при помощи NewType, на вход он принимает название и тип, который хранит.
Обобщения хранят в себе объекты, тип которых сразу неизвестен. Создавать собственные дженерики можно с помощью Generic и TypeVar.
Это — ещё не все. Подробнее вы, как обычно, можете почитать в документации.
#теория
Помимо того, что было описано в первой и второй части, вы можете создавать особые типы, псевдонимы и использовать обобщения.
Псевдонимы создаются так же, как и переменные,
name = type
.Особые типы создаются при помощи NewType, на вход он принимает название и тип, который хранит.
Обобщения хранят в себе объекты, тип которых сразу неизвестен. Создавать собственные дженерики можно с помощью Generic и TypeVar.
Это — ещё не все. Подробнее вы, как обычно, можете почитать в документации.
#теория
⚡️ Задачка с собеседования | #Medium
Условие:
Вам необходимо написать код, который бы возвращал сумму периметров всех квадратов в прямоугольнике, когда имеется n + 1 квадратов, расположенных так же, как на рисунке.
Примеры:
perimeter(1) -> 8
perimeter(5) -> 80 # 4 * (1 + 1 + 2 + 3 + 5 + 8) = 4 * 20 = 80
perimeter(20) -> 114624
Подсказка: воспользуйтесь последовательностью Фибоначчи.
📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇
#Задачка_с_собеседования
Условие:
Вам необходимо написать код, который бы возвращал сумму периметров всех квадратов в прямоугольнике, когда имеется n + 1 квадратов, расположенных так же, как на рисунке.
Примеры:
perimeter(1) -> 8
perimeter(5) -> 80 # 4 * (1 + 1 + 2 + 3 + 5 + 8) = 4 * 20 = 80
perimeter(20) -> 114624
Подсказка: воспользуйтесь последовательностью Фибоначчи.
📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇
#Задачка_с_собеседования
⚡️ Else в циклах
В Python есть интересная конструкция, позволяющая добавлять else в конец определения цикла while или for.
Вызывается блок кода только тогда, когда цикл закончил итерацию объекта. Иначе он просто игнорируется.
Такую вещь очень удобно использовать при поиске чего-либо, а подробнее о ней вы можете почитать тут.
#теория #for
В Python есть интересная конструкция, позволяющая добавлять else в конец определения цикла while или for.
Вызывается блок кода только тогда, когда цикл закончил итерацию объекта. Иначе он просто игнорируется.
Такую вещь очень удобно использовать при поиске чего-либо, а подробнее о ней вы можете почитать тут.
#теория #for