Home
Series About Subscribe
Вопросы для собеседования на Python для начинающих (Junior)

Вопросы для собеседования на Python для начинающих (Junior)

Я собрал серию постов с моей личной базой вопросов для собеседований на Python. Она не идеальна, не полна, и нет, ответов тут нет. Некоторые вопросы могут показаться странноватыми или взятыми из ниоткуда. Но по моему опыту, именно они хорошо показывают, кто на самом деле готов к работе.

Серия разбита на три части по уровню опыта:

Есть вопрос, который, как тебе кажется, должен быть здесь? Или то, что ты сам всегда спрашиваешь на собеседованиях? Дай знать — с удовольствием послушаю!


Вопросы

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? Поделись в комментариях или закинь мне в твиттер — с удовольствием почитаю!

Дополнительные материалы

Liked this? I publish one deep-dive every other Tuesday.

Join 4,000+ engineers. No sponsors.

Get the newsletter

Enjoyed what you just read? Others like these as well:

I started (again) my blog