Продолжение поста «Как я стал Python-разработчиком»
Расскажу о самых популярных вопросах, которые обязательно зададут на собеседовании по Python для джунов. Именно эти вопросы мне в своё время задавали на собеседовании, поэтому читаем и сохраняем себе на будущее. Ещё были задачки, но о них напишу чуть позже.
В чем разница между списком и кортежем? Ответ: список объявляется в квадратных скобках и может быть изменен, в то время как кортеж объявляется в скобках и не может быть изменен.
Как выполняется интерполяция строк? Ответ: интерполяция строк в Python позволяет вставлять значения переменных внутрь строки. Для выполнения интерполяции используется символ % и кортеж значений, которые нужно вставить в строку. Пример:
Что такое декоратор? Ответ: это функция в Python, которая позволяет добавить новую функциональность к существующей функции. Пример, где декоратор my_decorator принимает функцию func в качестве аргумента и возвращает новую функцию wrapper:
Что такое функция range? Ответ: функция range используется для создания последовательности чисел. Она принимает 3 аргумента: начальное значение, конечное значение и шаг. Например, для создания последовательности чисел от 0 до 9 мы напишем такой код:
В чём разница между методами экземпляра, класса и статическими методами? Ответ:
Методы экземпляра - это методы, которые относятся к определённому экземпляру класса и принимают параметр self.
Статические методы - это методы, которые не относятся к конкретному экземпляру класса, не имеют доступа к атрибутам экземпляра и используют декоратор staticmain.
Методы класса - это методы, которые относятся к классу в целом, а не к конкретному экземпляру, и принимают параметр cls. Они могут изменять состояние класса, но не экземпляров класса.
В чем разница между func и func()? Ответ: fun" - это имя функции, а func() - это вызов функции.
Как работает функция reduce? Ответ: Функция reduce() принимает функцию и последовательность и обрабатывает эту последовательность. На каждой итерации функция получает текущий элемент и результат предыдущего вызова. В результате функция возвращает одно значение.
Переменные в Python передаются по ссылке или по значению? Ответ: Переменные в Python передаются по ссылке.
Как работает умножение строк? Ответ: умножение строки на число создает новую строку, которая содержит несколько копий исходной строки, разделенных между собой. Например, выражение "hello" * 3 создаст новую строку "hellohellohello".
В чем разница между списками и массивами? Ответ: основная разница между ними в том, что это разные способы хранения последовательностей. Списки (list) в питоне являются встроенным в сам язык способом хранить последовательности. А массивы (array) требуют импортировать библиотеки. В списке можно хранить элементы разных типов. В массиве только элементы одного типа, из-за чего требуется меньше памяти. У списков свои встроенные методы для работы с элементами. У массивов свои, притом в разных библиотеках разные.
Как округлить число до трех десятичных знаков? Ответ: можно использовать функцию round(), Например, чтобы округлить число 3.14159265359 до трех десятичных знаков напишем round(3.14159265359, 3).
Какая разница между словарями и JSON? Ответ: словари используются для хранения данных в памяти компьютера в Python, тогда как JSON используется для передачи данных между различными системами и языками программирования.
Список дополнительных вопросов, которые нужно задавать на собеседовании стажёру / junior'у (по моему скромному мнению):
Как управляется память?
Что такое PEP 8?
Обязательны ли отступы?
Что такое функция?
Что такое локальные и глобальные переменные?
Что такое лямбда-функция?
Какие типы данных поддерживаются?
Что такое индексы?
Что такое словарь?
Что такое итераторы?
Что делает [:: -1}?
Как можно использовать тернарные операторы?
Что такое функция map?
Каков смысл not в операторе?
Как создать пустой класс?
Как преобразовать список в строку?
Как вырваться из бесконечного цикла?
Когда выполняется except, в блоке try-except?
Что такое модули Python?
Как можно удалить переменные?
Что такое генератор?
Освобождается ли вся память при выходе из Python?