Я собрал серию постов с моей личной базой вопросов для собеседований на Python. Она не идеальна, не полна, и нет, ответов тут нет. Некоторые вопросы могут показаться странноватыми или взятыми из ниоткуда. Но по моему опыту, именно они хорошо показывают, кто на самом деле готов к работе.
Серия разбита на три части по уровню опыта:
- Python Interview Questions for Beginners (Junior)
- Python Interview Questions for Mid-Level Developers
- Python Interview Questions for Experienced Developers (Senior)
Есть вопрос, который, как тебе кажется, должен быть здесь? Или то, что ты сам всегда спрашиваешь на собеседованиях? Дай знать — с удовольствием послушаю!
Вопросы
1. Основы Python
Q: Что такое Python?
Q: Что такое lambda-функция в Python? Зачем она вообще нужна?
Q: Что такое pass в Python?
Q: Что такое *args, **kwargs в определении функции?
Q: Что такое docstring в Python? Как их писать? Они обязательны?
Q: Какие ключевые слова можно использовать вместе с for?
Q: Что такое срезы (slicing) в Python? Могут ли срезы иметь отрицательные индексы?
Q: Что такое модуль __init__.py? Для чего он нужен?
Q: Что такое PEP8?
2. Типы данных и структуры
Q: Какие встроенные типы данных есть в Python? Какие из них изменяемые (mutable), а какие — нет (immutable)?
Q: В чём разница между типами list и tuple в Python?
Q: Что может быть ключом в dict?
Q: В чём разница между globals(), locals() и vars()?
Q: Что такое dataclasses в Python? Когда их стоит использовать?
3. Объектно-ориентированное программирование (ООП)
Q: Что такое @classmethod, @staticmethod, @property?
Q: В чём разница между @classmethod и @staticmethod?
Q: Полностью ли Python поддерживает ООП? Почему да или почему нет?
Q: Для чего в Python используется self?
Q: Для чего используется метод __init__?
Q: Как посмотреть методы объекта?
Q: Что такое атрибут __dict__ у объекта в Python?
4. Модули и пакеты Python
Q: В чём разница между модулем и пакетом?
Q: Объясни, как сделать Python-скрипт исполняемым в Unix?
5. Продвинутые темы Python
Q: Можно ли писать многопоточные приложения на Python? В чём разница между multithreading и multiprocessing?
Q: Что такое декоратор? Как написать свой декоратор?
Q: Объясни, что такое pickling и unpickling в Python. Чем это отличается от marshaling и unmarshaling?
Q: Как получить документацию по объекту или методу в Python?
6. Задачи на кодинг
Q: Какой самый pythonic способ поменять местами значения переменных?
Q: Напиши функцию, которая генерирует последовательность Фибоначчи.
Q: Как перевести строку с бинарным кодом (из 1 и 0) в число (integer)? Напиши функцию для этого.
Q: Как проверить, что кортеж A содержит все элементы кортежа B? Содержат ли оба кортежа уникальные значения? Напиши функцию для этого.
Q: Что выведет следующий код?
def f():
x = 15
print(x)
x = 12
f()
Q: Как преобразовать строку в число, состоящее из ASCII-кодов её букв? Пример: 'abcd' -> 979899100. Напиши функцию для этого.
Q: Как убрать пустые строки (длиной 0) из списка строк? Напиши функцию для этого.
Q: Напиши функцию, которая считает все различные пары чисел с разницей, равной k.
Q: Напиши функцию, которая возвращает строку из чисел от 0 до 100: "0123456789101112...".
Q: Напиши функцию, которая делает из списка с дубликатами список с уникальными элементами. Пример: [1, 1, 2, 3, 3] -> [1, 2, 3].
Q: Составь список простых чисел из диапазона (1, 100) на Python.
Q: Напиши программу, которая печатает числа от 1 до 20. Но для чисел, кратных трём, вместо числа печатай "Fizz", а для кратных пяти — "Buzz". Для чисел, кратных и трём, и пяти — "FizzBuzz".
Кажется, чего-то не хватает? Есть свой убойный вопрос по Python? Поделись в комментариях или закинь мне в твиттер — с удовольствием почитаю!