10 самых частых вопросов на собеседовании по Python
1) В чем разница между поверхностным и глубоким копированием?
Глубокое копирование создает новый объект и заполняет его дочерними объектами исходного объекта. Поэтому изменения исходного объекта не отражаются на копии.
Поверхностное копирование создает новый объект и заполняет его ссылками на дочерние объекты в исходном объекте. Поэтому изменения в исходном объекте отражаются в копии.
2)Как достигается многопоточность в Python?
Многопоточность обычно подразумевает, что несколько потоков выполняются одновременно. Глобальная блокировка интерпретатора Python не позволяет более чем одному потоку удерживать интерпретатор Python в данный конкретный момент времени. Так что многопоточность в питоне достигается за счет переключения контекста. Это сильно отличается от многопроцессорной обработки, которая фактически открывает несколько процессов в нескольких потоках.
3)Обсуждение архитектуры Django
Django — это веб-сервис, используемый для создания ваших веб-страниц. Его архитектура выглядит следующим образом:
- Шаблон: передняя часть веб-страницы
- Модель: серверная часть, где хранятся данные
- Представление: взаимодействует с моделью и шаблоном и сопоставляет их с URL-адресом.
- Django: отдает страницу пользователю
4) Как управляется память в Python?
В Python есть куча, в которой хранятся все объекты. Диспетчер памяти Python регулирует различные аспекты этой кучи, такие как совместное использование, кэширование, сегментация и распределение. Пользователь не имеет контроля над кучей; доступ имеет только интерпретатор Python.
5)Аргументы в Python передаются по значению или по ссылке?
Аргументы передаются в python по ссылке. Это означает, что любые изменения, сделанные внутри функции, отражаются в исходном объекте.
6)Что делает оператор //?
В Python оператор / выполняет деление и возвращает частное в виде числа с плавающей запятой.
Например: 5/2 возвращает 2,5.
Оператор //, с другой стороны, возвращает частное в виде целого числа.
Например: 5 // 2 возвращает 2
7)Что делает оператор is?
Оператор is сравнивает идентификаторы двух объектов.
Список1=[1,2,3]
Список2=[1,2,3]
Список3=Список1
Список1 == Список2 🡪 Верно
Список1 is Список2 🡪 Ложь
Список1 is Список3 🡪 Верно
8)Как отобразить содержимое текстового файла в обратном порядке?
Вы можете отобразить содержимое текстового файла в обратном порядке, выполнив следующие действия:
- Откройте файл с помощью функции open()
- Сохранить содержимое файла в список
- Перевернуть содержимое списка
- Запустите цикл for для перебора списка
9) Python является объектно-ориентированным или функциональным языком?
Python считается мультипарадигменным языком.
Объектно-ориентированная парадигма:
- Python позволяет создавать объекты и манипулировать ими с помощью определенных методов.
- Он поддерживает большинство функций ООП, таких как наследование и полиморфизм.
Функциональная парадигма:
- Функции могут использоваться как объект первого класса.
- Python поддерживает функции Lambda, характерные для функциональной парадигмы.
10) В чем разница между матрицами и массивами?
Матрица исходит из линейной алгебры и представляет собой двумерное представление данных.
Она поставляется с мощным набором математических операций, которые позволяют вам манипулировать данными интересными способами.
Массив — это последовательность объектов с одинаковым типом данных.
Массив внутри другого массива образует матрицу.