⚡️ Задачка с собеседования | #Medium
Условие:
Вам необходимо узнать, какой тип аннотирован у переменной. На вход идёт строка с определением переменной, на выход — строка-тип. Будут использоваться самые примитивные типы (str, int, float). Если тип не определён, возвращает None.
Примеры:
get_annotation("a: str = 'b: int = 1'") -> 'str'
get_annotation('a: int') -> 'int'
get_annotation("a = 'b: int = 1'") -> None
get_annotation('a = 1') -> None
📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇
#Задачка_с_собеседования
Условие:
Вам необходимо узнать, какой тип аннотирован у переменной. На вход идёт строка с определением переменной, на выход — строка-тип. Будут использоваться самые примитивные типы (str, int, float). Если тип не определён, возвращает None.
Примеры:
get_annotation("a: str = 'b: int = 1'") -> 'str'
get_annotation('a: int') -> 'int'
get_annotation("a = 'b: int = 1'") -> None
get_annotation('a = 1') -> None
📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇
#Задачка_с_собеседования
⚡️ Универсальный инструмент, пользу которого оценит любой участник этого канала.
В какой бы сфере IT вы ни были заняты, потребность в быстром, удобном, а главное, в большинстве своем, бесплатном графическом редакторе рано или поздно возникает у всех.
Один из наиболее подходящих по всем вышеперечисленным критериям сервис - это Canva. Если вы еще не пробовали его в действии, пришло время это исправить!
👉 Во-первых канва - это универсально. Вы сможете нарисовать логотип, баннер, персональную визитку, смонтровать рекламное видео для сторис или выбрать подходящее вашему контенту бесплатное стоковое фото - все, для любой сферы вашей деятельности в одном месте.
👉 Во-вторых, не обязательно ничего скачивать или платить за подписку. Все самые необходимые инструменты доступны бесплатно в веб-версии. А еще есть удобный софт для телефона, ноутбука или планшета, на любой ОС.
👉 В-третьих, не нужно быть графическим дизайнером, чтобы начать работу. Все редактирование очень интуитивно, на базе интерфейса drag-n-drop.
А еще любой проект можно сохранить и вернуться к нему в любое удобное время, с любого другого устройства. Отличная новость для тех, кто ценит мобильность и свое время.
Хотите попробовать? Переходите по ссылке — https://fas.st/KB401
В какой бы сфере IT вы ни были заняты, потребность в быстром, удобном, а главное, в большинстве своем, бесплатном графическом редакторе рано или поздно возникает у всех.
Один из наиболее подходящих по всем вышеперечисленным критериям сервис - это Canva. Если вы еще не пробовали его в действии, пришло время это исправить!
👉 Во-первых канва - это универсально. Вы сможете нарисовать логотип, баннер, персональную визитку, смонтровать рекламное видео для сторис или выбрать подходящее вашему контенту бесплатное стоковое фото - все, для любой сферы вашей деятельности в одном месте.
👉 Во-вторых, не обязательно ничего скачивать или платить за подписку. Все самые необходимые инструменты доступны бесплатно в веб-версии. А еще есть удобный софт для телефона, ноутбука или планшета, на любой ОС.
👉 В-третьих, не нужно быть графическим дизайнером, чтобы начать работу. Все редактирование очень интуитивно, на базе интерфейса drag-n-drop.
А еще любой проект можно сохранить и вернуться к нему в любое удобное время, с любого другого устройства. Отличная новость для тех, кто ценит мобильность и свое время.
Хотите попробовать? Переходите по ссылке — https://fas.st/KB401
Что выведет этот код?
Anonymous Quiz
5%
- 1 0 1
3%
- 1 1 2
9%
1 2 -1
39%
0 1 -1
35%
Ошибку
8%
Узнать ответ
⚡️ Работаем с архивами
Если вам необходимо считать данные с zip архива, то можете воспользоваться модулем zipfile.
Поскольку модуль работает с файловой системой, его необходимо закрывать, используя
Если вам необходимо считать данные с zip архива, то можете воспользоваться модулем zipfile.
ZipFile(file, mode='r')
— открывает архив для чтения/записи (зависит от mode). После этого вы можете проводить с ним такие операции:ZipFile.open(name, mode='r')— позволяет открыть файл внутри архива.
ZipFile.extractall(path=None)
— извлекает все файлы и папки в директорию path.Поскольку модуль работает с файловой системой, его необходимо закрывать, используя
close()
или оператор with
.⚡️ Задачка с собеседования | #Medium
Условие:
Вам необходимо вернуть индекс первой уникальной буквы в строке. В данном случае производительность в приоритете. Если символ не найден, возвращаем -1.
Примеры:
unique_char('python') -> 0
unique_char('pythonTop') -> 1
unique_char('aabb') -> -1
📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇
#Задачка_с_собеседования
Условие:
Вам необходимо вернуть индекс первой уникальной буквы в строке. В данном случае производительность в приоритете. Если символ не найден, возвращаем -1.
Примеры:
unique_char('python') -> 0
unique_char('pythonTop') -> 1
unique_char('aabb') -> -1
📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇
#Задачка_с_собеседования
⚡️ Встроенные функции в 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
📌 Пишите ваше решение в комментариях. Решение будет через несколько часов на этом канале. 👇
#Задачка_с_собеседования