Python | Готовимся к собесам
440 subscribers
22 photos
133 links
Вопросы с собеседований для позиций Python-разработчиков, тесты, практика от синьора. Читай, чтобы прокачаться перед встречей

Подготовка к собесам для Frontend https://t.me/+Y8231d36XXo5YTk6

Ссылка на для друга https://t.me/+Dn9D2WZCvno5MGZi
Download Telegram
Привет!
👋Добро пожаловать в канал. В нём вы найдёте вопросы с собесов на позиции python-разработчика, тесты, лучшие практики, советы по пет-проектам.

Меня зовут Никита, последние десять лет я пишу на Python и работаю тимлидом.

Регулярно сталкиваюсь с тем, что новички на собесах не знают базовых вещей и не проходят этап интервью — в этом канале постараюсь дать материал, чтобы вы могли избежать таких ситуаций и трудоустраивались если не с первого, то со второго раза

👩‍💻Я пишу на python последние десять лет. Когда собеседую новичков в свою команду — сталкиваюсь с пробелами в их знаниях, из-за чего многие не получают работу

Подписывайтесь и приглашайте своих друзей-фронтов, чтобы они были готовы ко всем собесам

➡️ Подготовка Python
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥6
Что такое последовательность

Последовательностью в Python называется итерабельный объект, который поддерживает эффективный доступ к элементам с использованием целочисленных индексов через специальный метод
__getitem__()

и поддерживает метод
__len__()

который возвращает длину последовательности. К основным встроенным типам последовательностей относятся list, tuple, range, str и bytes.

Последовательности также опционально могут реализовывать методы
count(), index(), __contains__() и __reversed__() и другие.


Если знали ответ — поставвьте 🔥
Если нет — 🤯

➡️ Подготовка Python | #вопросы
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, анг. “примесь”), паттерн проектирования в ООП, когда в цепочку наследования добавляется небольшой класс-помощник. Например, есть класс

class NowMixin(object):
def now():
return datetime.datetime.utcnow()
Тогда любой класс, наследованный с этим миксином, будет иметь метод now().


В названия миксинов принято добавлять слово Mixin, так как не существует никакого механизма для понимания полноценный это класс или миксин. Миксин технически является самым обычным классом.


Если знали ответ — поставьте 🔥
Если нет — 🤯

➡️ Подготовка Python | #вопросы
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
Что такое лямбды. Каковы их особенности

Ответ:
Это анонимные функции. Они не резервируют имени в пространстве имен. Лямбды часто передают в функции map, reduce, filter.

Лямбды в Питоне могут состоять только из одного выражения. Используя синтаксис скобок, можно оформить тело лямбды в несколько строк.

Использовать точку с запятой для разделения операторов нельзя.


Если знали ответ — поставьте 🔥
Если нет — 🤯

➡️ Подготовка Python | #вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8🤯7
Допустимы ли следующие выражения


riser = lambda x: raise Exception(x)


Ответ:
Нет, при загрузке модуля выскочит исключение SyntaxError. В теле лямбды может быть только выражение. pass и raise являются операторами.

Если знали ответ — поставьте 🔥
Если нет — 🤯

➡️ Подготовка Python | #вопросы
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 | #вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6🤯3
Для чего могут применять конструкцию try finally без except?

Ответ:
try:
# some code
finally:
# some code


Если в блоке try произойдет ошибка, то блок finally все-равно будет выполнен и внутри него можно будет сделать "cleanup", например.


Если знали ответ — поставьте 🔥
Если нет — 🤯

➡️ Подготовка Python | #вопросы
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
В каких случаях можно обработать SyntaxError?

Ответ:
Ошибка синтаксиса возникает, когда синтаксический анализатор Python сталкивается с участком кода, который не соответствует спецификации языка и не может быть интерпретирован. Поскольку, в случае синтаксической ошибки в главном модуле, она возникает до начала выполнения программы и не может быть перехвачена, учебник для начинающих в документации языка Python даже разделяет синтаксические ошибки и исключения. Однако SyntaxError – это тоже исключение, которое наследуется от Exception, и существуют ситуации, когда оно может возникнуть во время исполнения и быть обработано, а именно:

— ошибка синтаксиса в импортируемом модуле;
— ошибка синтаксиса в коде, который представляется строкой и передаётся функции eval или exec.


Если знали ответ — поставьте 🔥
Если нет — 🤯

➡️ Подготовка Python | #вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
🤯14🔥3
Можно ли создавать собственные исключения?


Ответ:
Можно. Они должны быть наследниками класса Exception. Принято называть исключения так, что имя их класса заканчивается словом Error.

Если знали ответ — поставьте 🔥
Если нет — 🤯

➡️ Подготовка Python | #вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13🤯6