⚡️ Встроенные функции в Python
Если вы хоть раз писали hello world, значит ими точно пользовались. Но print — не единственная встроенная функция. Их, приблизительно, 71 штука.
Вряд ли получится уместить все функции в одну статью, да и необходимости в этом нет, если всё можно найти в документации.
#теория
Если вы хоть раз писали hello world, значит ими точно пользовались. Но print — не единственная встроенная функция. Их, приблизительно, 71 штука.
float()
, int()
, list()
, set()
, str()
, tuple()
, dict()
— основные типы в Python: список, строка, кортеж, словарь.max()
, min()
, abs()
— возвращают максимальное, минимальное число из списка. А последняя функция — абсолютное число.zip()
, enumerate()
, reversed()
— три отличных помощника при работе с циклами.Вряд ли получится уместить все функции в одну статью, да и необходимости в этом нет, если всё можно найти в документации.
#теория
Что выведет код выше?
Anonymous Quiz
37%
{('a', 2), ('b', 1)}
26%
{'a': 2, 'b': 1}
7%
{2: 'a', 1: 'b'}
19%
Ошибку
11%
Узнать ответ
⚡️ Классы, хранящие данные
Если вы писали какие-либо системы, то вам точно было необходимо передавать данные между ними в классах. Чтобы упростить создание таких классов, разработчики придумали dataclass.
Это декоратор, переопределяющий
Как видно из примера выше, Point не имеет никаких методов для инициализации или вывода, но они переопределены. Это напоминает структуры из си-подобных языков.
Если вам стало интересно, можете почитать подробнее в документации.
#миниурок #dataclass
Если вы писали какие-либо системы, то вам точно было необходимо передавать данные между ними в классах. Чтобы упростить создание таких классов, разработчики придумали dataclass.
Это декоратор, переопределяющий
__init__
, __repr__
и другие, на основе переменных, определённых внутри класса.Как видно из примера выше, Point не имеет никаких методов для инициализации или вывода, но они переопределены. Это напоминает структуры из си-подобных языков.
Если вам стало интересно, можете почитать подробнее в документации.
#миниурок #dataclass
⚡️ Задачка с собеседования | #Easy
Условие:
Вам необходимо сделать красивый и читаемый вывод телефона. На вход идёт строка с номером, а возвращает функция номер в таком формате: (000) 000 0000
Примеры:
format_phone('0000000000') -> '(000) 000 0000'
format_phone('8005553535') -> '(800) 555 3535'
format_phone('1234567890') -> '(123) 456 7890'
📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇
#Задачка_с_собеседования
Условие:
Вам необходимо сделать красивый и читаемый вывод телефона. На вход идёт строка с номером, а возвращает функция номер в таком формате: (000) 000 0000
Примеры:
format_phone('0000000000') -> '(000) 000 0000'
format_phone('8005553535') -> '(800) 555 3535'
format_phone('1234567890') -> '(123) 456 7890'
📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇
#Задачка_с_собеседования
⚡️ Аннотация типов. Часть 2
В предыдущей части мы разобрали, как работать с базовыми типами (int, float, str), но что, если функция принимает что-то потяжелее (list[float], dict) или может возвращать не один тип?
В таком случае, для коллекций в модуле typing существуют специальные типы, такие как List (в Python3.9 можно использовать встроенный list), Tuple или Dict.
А если функция возвращает несколько типов? Тогда в модуле стоит использовать Union, оповещающий об использовании нескольких типов. Если же это один любой тип и None, то лучше использовать Optional.
Если что-то не понятно (а вам, скорее всего, непонятно будет всё, потому что тема не самая простая), посетите страницу документации и поизучайте её какое-то время.
#теория
В предыдущей части мы разобрали, как работать с базовыми типами (int, float, str), но что, если функция принимает что-то потяжелее (list[float], dict) или может возвращать не один тип?
В таком случае, для коллекций в модуле typing существуют специальные типы, такие как List (в Python3.9 можно использовать встроенный list), Tuple или Dict.
А если функция возвращает несколько типов? Тогда в модуле стоит использовать Union, оповещающий об использовании нескольких типов. Если же это один любой тип и None, то лучше использовать Optional.
Если что-то не понятно (а вам, скорее всего, непонятно будет всё, потому что тема не самая простая), посетите страницу документации и поизучайте её какое-то время.
#теория
⚡️ Взаимодействуем с 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