Привет!
👋 Добро пожаловать в канал. В нём вы найдёте вопросы с собесов на позиции python-разработчика, тесты, лучшие практики, советы по пет-проектам.
Меня зовут Никита, последние десять лет я пишу на Python и работаю тимлидом.
Регулярно сталкиваюсь с тем, что новички на собесах не знают базовых вещей и не проходят этап интервью — в этом канале постараюсь дать материал, чтобы вы могли избежать таких ситуаций и трудоустраивались если не с первого, то со второго раза
👩💻 Я пишу на python последние десять лет. Когда собеседую новичков в свою команду — сталкиваюсь с пробелами в их знаниях, из-за чего многие не получают работу
Подписывайтесь и приглашайте своих друзей-фронтов, чтобы они были готовы ко всем собесам
➡️ Подготовка Python
Меня зовут Никита, последние десять лет я пишу на Python и работаю тимлидом.
Регулярно сталкиваюсь с тем, что новички на собесах не знают базовых вещей и не проходят этап интервью — в этом канале постараюсь дать материал, чтобы вы могли избежать таких ситуаций и трудоустраивались если не с первого, то со второго раза
Подписывайтесь и приглашайте своих друзей-фронтов, чтобы они были готовы ко всем собесам
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥6
Что такое последовательность
Последовательностью в Python называется итерабельный объект, который поддерживает эффективный доступ к элементам с использованием целочисленных индексов через специальный метод
и поддерживает метод
который возвращает длину последовательности. К основным встроенным типам последовательностей относятся list, tuple, range, str и bytes.
Последовательности также опционально могут реализовывать методы
Если знали ответ — поставвьте 🔥
Если нет — 🤯
➡️ Подготовка Python | #вопросы
__getitem__()
и поддерживает метод
__len__()
который возвращает длину последовательности. К основным встроенным типам последовательностей относятся list, tuple, range, str и bytes.
Последовательности также опционально могут реализовывать методы
count(), index(), __contains__() и __reversed__() и другие.
Если знали ответ — поставвьте 🔥
Если нет — 🤯
Please open Telegram to view this post
VIEW IN TELEGRAM
🤯6🔥3❤🔥2🥰2
Для чего применяются множества
Ответ:
Обычно используются для проверки элемента на вхождение в множество и удаление повторений элементов и выполнения таких операций, как объединение, пересечение, разница и симметрическая разница.
Если знали ответ — поставьте 🔥
Если нет — 🤯
➡️ Подготовка Python | #вопросы
Ответ:
Если знали ответ — поставьте 🔥
Если нет — 🤯
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8🤯5
Какие виды строк бывают в питоне
Ответ:
Зависит от версии Питона. Во второй ветке два типа: однобайтные строки и Юникод представлены классами str и unicode соответственно. В третьем Питоне есть один вид строк str, который представляет собой Юникод. Однобайтных строк нет, вместо них есть тип bytes, то есть цепочка байт.
Если знали ответ — поставьте 🔥
Если нет — 🤯
➡️ Подготовка Python | #вопросы
Ответ:
Если знали ответ — поставьте 🔥
Если нет — 🤯
Please open Telegram to view this post
VIEW IN TELEGRAM
🤯13🔥4
Можно ли извлечь элемент генератора по индексу
Ответ:
Нет, будет ошибка. Генератор не поддерживает метод __getitem__.
Если знали ответ — поставьте 🔥
Если нет — 🤯
➡️ Подготовка Python | #вопросы
Ответ:
Если знали ответ — поставьте 🔥
Если нет — 🤯
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9🤯3
Как итерировать словарь по парам ключ-значение
Ответ:
Метод словаря .items() возвращает генератор кортежей (key, value).
Если знали ответ — поставьте 🔥
Если нет — 🤯
➡️ Подготовка Python | #вопросы
Ответ:
Если знали ответ — поставьте 🔥
Если нет — 🤯
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11🤯5
Что такое миксины
Ответ:
Миксин (mix-in, анг. “примесь”), паттерн проектирования в ООП, когда в цепочку наследования добавляется небольшой класс-помощник. Например, есть класс
В названия миксинов принято добавлять слово Mixin, так как не существует никакого механизма для понимания полноценный это класс или миксин. Миксин технически является самым обычным классом.
Если знали ответ — поставьте 🔥
Если нет — 🤯
➡️ Подготовка Python | #вопросы
Ответ:
class NowMixin(object):
def now():
return datetime.datetime.utcnow()
Тогда любой класс, наследованный с этим миксином, будет иметь метод now().
В названия миксинов принято добавлять слово Mixin, так как не существует никакого механизма для понимания полноценный это класс или миксин. Миксин технически является самым обычным классом.
Если знали ответ — поставьте 🔥
Если нет — 🤯
Please open Telegram to view this post
VIEW IN TELEGRAM
🤯11🔥4
Что такое модуль
Ответ:
Модуль – функционально законченный фрагмент программы, оформленный в виде отдельного файла с исходным кодом или поименованной непрерывной её части. Модули позволяют разбивать сложные задачи на более мелкие в соответствии с принципом модульности. Файл, который содержит исходный код на языке Python, является модулем. Модули могут объединяться в пакеты и, далее, в библиотеки.
Если знали ответ — поставьте 🔥
Если нет — 🤯
➡️ Подготовка Python | #вопросы
Ответ:
Если знали ответ — поставьте 🔥
Если нет — 🤯
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8🤯3
Что такое лямбды. Каковы их особенности
Ответ:
Если знали ответ — поставьте 🔥
Если нет — 🤯
➡️ Подготовка Python | #вопросы
Ответ:
Это анонимные функции. Они не резервируют имени в пространстве имен. Лямбды часто передают в функции map, reduce, filter.
Лямбды в Питоне могут состоять только из одного выражения. Используя синтаксис скобок, можно оформить тело лямбды в несколько строк.
Использовать точку с запятой для разделения операторов нельзя.
Если знали ответ — поставьте 🔥
Если нет — 🤯
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8🤯7
Допустимы ли следующие выражения
Ответ:
Нет, при загрузке модуля выскочит исключение SyntaxError. В теле лямбды может быть только выражение. pass и raise являются операторами.
Если знали ответ — поставьте 🔥
Если нет — 🤯
➡️ Подготовка Python | #вопросы
riser = lambda x: raise Exception(x)
Ответ:
Если знали ответ — поставьте 🔥
Если нет — 🤯
Please open Telegram to view this post
VIEW IN TELEGRAM
🤯9🔥5
Что такое контейнер?
Ответ:
Контейнер – это тип данных, который инкапсулирует в себе значения других типов. Списки, кортежи, множества, словари и т.д. являются контейнерами.
Если знали ответ — поставьте 🔥
Если нет — 🤯
➡️ Подготовка Python | #вопросы
Ответ:
Если знали ответ — поставьте 🔥
Если нет — 🤯
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8🤯4
Можно ли извлечь элемент генератора по индексу?
Ответ:
Нет, будет ошибка. Генератор не поддерживает метод __getitem__.
Если знали ответ — поставьте 🔥
Если нет — 🤯
➡️ Подготовка Python | #вопросы
Ответ:
Если знали ответ — поставьте 🔥
Если нет — 🤯
Please open Telegram to view this post
VIEW IN TELEGRAM
🤯8🔥7
Как можно получить имя модуля?
Ответ:
Название модуля доступно в его глобальной переменной __name__. Если модуль не импортирован, а запущен как скрипт, то __name__ устанавливается в значение "__main__".
Если знали ответ — поставьте 🔥
Если нет — 🤯
➡️ Подготовка Python | #вопросы
Ответ:
Если знали ответ — поставьте 🔥
Если нет — 🤯
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7🤯7
Что такое обработка исключений?
Ответ:
Обработка исключительных ситуаций или обработка исключений (англ. exception handling) — механизм языков программирования, предназначенный для описания реакции программы на ошибки времени выполнения и другие возможные проблемы (исключения), которые могут возникнуть при выполнении программы и приводят к невозможности (бессмысленности) дальнейшей отработки программой её базового алгоритма.
Код на Python может сгенерировать исключение при помощи ключевого слова raise. После него указывается объект исключения. Также можно указать класс исключения, в таком случае будет автоматически вызван конструктор без параметров. raise может выбрасывать в качестве исключений только экземпляры класса BaseException и его наследников, а также (в Python 2) экземпляры классов старого типа.
Если знали ответ — поставьте 🔥
Если нет — 🤯
➡️ Подготовка Python | #вопросы
Ответ:
Код на Python может сгенерировать исключение при помощи ключевого слова raise. После него указывается объект исключения. Также можно указать класс исключения, в таком случае будет автоматически вызван конструктор без параметров. raise может выбрасывать в качестве исключений только экземпляры класса BaseException и его наследников, а также (в Python 2) экземпляры классов старого типа.
Если знали ответ — поставьте 🔥
Если нет — 🤯
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6🤯3
Для чего могут применять конструкцию try finally без except?
Ответ:
Если в блоке try произойдет ошибка, то блок finally все-равно будет выполнен и внутри него можно будет сделать "cleanup", например.
Если знали ответ — поставьте 🔥
Если нет — 🤯
➡️ Подготовка Python | #вопросы
Ответ:
try:
# some code
finally:
# some code
Если в блоке try произойдет ошибка, то блок finally все-равно будет выполнен и внутри него можно будет сделать "cleanup", например.
Если знали ответ — поставьте 🔥
Если нет — 🤯
Please open Telegram to view this post
VIEW IN TELEGRAM
🤯7🔥5❤1
Как правильно по-разному обрабатывать исключения?
Ответ:
Блоки except обрабатываются сверху вниз и управление передаётся не больше, чем одному обработчику. Поэтому при необходимости по-разному обрабатывать исключения, находящиеся в иерархии наследования, сначала нужно указывать обработчики менее общих исключений, а затем – более общих. Также именно поэтому bare except может быть только последним (иначе SyntaxError). Причём если сначала расположить обработчики более общих исключений, то обработчики менее общих будут просто проигнорированы.
Если знали ответ — поставьте 🔥
Если нет — 🤯
➡️ Подготовка Python | #вопросы
Ответ:
Если знали ответ — поставьте 🔥
Если нет — 🤯
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7🤯4
Зачем нужен блок else?
Ответ:
Блок else выполняется, если в процессе выполнения блока try не возникло исключений. Он предназначен для того, чтобы отделить код, который может вызвать исключение, которое должно быть обработано в данном блоке try/except, от кода, который может вызвать исключение того же класса, которое должно быть перехвачено на уровне выше, и свести к минимуму количество операторов в блоке try.
Если знали ответ — поставьте 🔥
Если нет — 🤯
➡️ Подготовка Python | #вопросы
Ответ:
Если знали ответ — поставьте 🔥
Если нет — 🤯
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12🤯4👍1
Что можно передать в конструктор исключения?
Ответ:
Исключения могут принимать в качестве параметра конструктора любые неименованные аргументы. Они помещаются в атрибуте данных args в виде кортежа (неизменяемого списка). Чаще всего используется один строковой параметр, который содержит сообщение об ошибке. Во всех исключениях определён метод __str__, который по умолчанию вызывает str(self.args). В Python 2 также имеется атрибут message, в который помещается args[0], если len(args) == 1.
Если знали ответ — поставьте 🔥
Если нет — 🤯
➡️ Подготовка Python | #вопросы
Ответ:
Если знали ответ — поставьте 🔥
Если нет — 🤯
Please open Telegram to view this post
VIEW IN TELEGRAM
🤯6🔥4👍2