Python вопросы с собеседований
24.7K subscribers
506 photos
14 videos
17 files
400 links
Вопросы с собеседований по Python

@workakkk - админ

@machinelearning_interview - вопросы с собесдований по Ml

@pro_python_code - Python

@data_analysis_ml - анализ данных на Python

@itchannels_telegram - 🔥 главное в ит

РКН: clck.ru/3FmrFd
Download Telegram
#Вопросы_с_собеседования

Что плохого в следующем коде?

Ответ:
В Python нет объявлений переменных, поэтому он должен сам определить их область действия. Если внутри функции имеется обращение к переменной, то она считается локальной. Переменная count выше является глобальной, поэтому код выбрасывает ошибку.
#Вопросы_с_собеседования

В чем разница между списками и массивами?

Примечание: в стандартной библиотеке Python есть объект array, но здесь мы специально будем обсуждать массив из популярной библиотеки Numpy.

Списки в каждом индексе можно заполнять разными типами данных. Массивы требуют однородных элементов.

Арифметические действия в списках добавляют или удаляют элементы из списка. Арифметические действия на массивах соответствуют функциям линейной алгебры.

Массивы используют меньше памяти и обладают значительно большей функциональностью.
#Вопросы_с_собеседования

Напишите в одну строку как можно получить самую позднюю по коду букву в строке

Строковый метод max() будет сравнивать значение ASCII каждого символа в строке и возвращает максимальный алфавитный символ.
#Вопросы_с_собеседования

Что такое поверхностная копия?

Поверхностная копия используется при создании нового типа экземпляра и сохраняет значения, скопированные в новом. Также она используется для копирования ссылочных указателей. Это означает, что когда мы копируем объект в другую переменную, он будет привязан.
#Вопросы_с_собеседования

Что такое глубокая копия?

Глубокая копия используется для хранения значений, которые уже скопированы. Глубокая копия не копирует ссылочные указатели на объекты.

Она создает ссылку на объект, и новый объект, на который указывает другой, сохраняется. В отличие от неглубокой копии, изменения, внесенные в исходную копию, не повлияют ни на одну другую копию, использующую объект. Это значит, что они не привязаны.
Scope в Python – какие бывают?

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

Local scope – относится к локальным объектам, доступным в текущей функции.
Global scope – относится к объектам, доступным во время выполнения кода с момента их создания.
Module-level scope - относится к глобальным объектам текущего модуля, доступным в программе.
Outermost – относится ко всем встроенным именам, вызываемым в программе. Объекты в этой области видимости ищутся в последнюю очередь, чтобы найти имя, на которое ссылаются.

@python_job_interview
Чувствителен ли Python к регистру?

Ответ
Язык программирования считается чувствительным к регистру, если он различает такие идентификаторы, как «myname» и «Myname». Проще говоря, он заботится, являются ли символы строчными или прописными.

Давайте посмотрим на пример на картинке.

NameError: name 'Myname' is not defined
Возникновение ошибки NameError означает, что Python чувствителен к регистру.

@python_job_interview
Чем отличается pickling от unpickling?


Ответ
Любое руководство по вопросам и ответам на собеседовании по Python не будет полным без этого вопроса. В Python модуль pickle принимает любой объект Python, преобразует его в строковое представление и выгружает его в файл с помощью функции dump. Такой процесс известен как pickling. Для этого процесса используется функция pickle.dump().

С другой стороны, процесс извлечения исходного объекта Python из сохраненного строкового представления называется unpickling. Для этого процесса используется функция pickle.load().

@python_job_interview
Что такое @property

Ответ

Функция property() используется для определения свойств в классах.

Метод property() обеспечивает интерфейс для атрибутов экземпляра класса. Он инкапсулирует атрибуты экземпляров и предоставляет свойства, аналогично тому, как это работает в Java и C#.

Метод property() принимает на вход методы get, set и delete, и возвращает объекты класса property.

Вместо метода property() лучше использовать декоратор property (https://www.tutorialsteacher.com/python/property-decorator).


Параметры:

fget: (опционально) Функция для получения значения атрибута. Значение по умолчанию None.

fset: (опционально) Функция для задания значения атрибута. Значение по умолчанию None.

fdel: (опционально) Функция для удаления значения атрибута. Значение по умолчанию None.

doc: (опционально) Строка, содержащая документацию. Значение по умолчанию None.

Возврат значений:

Возвращает атрибут свойства из заданных геттера, сеттера и функции удаления.

Следующий пример показывает, как создать свойство в Python с помощью функции property().

➡️ Подробнее о property

@python_job_interview
Как вычислять процентили с помощью NumPy?

Ответ
Медиана — это 50 процентиль по определению. 25 процентиль указывает, что 25% наблюдаемых меньше числа в процентиле, то есть n процентов наблюдаемых значений меньше значения в процентиле n.

Мы можем вычислить его с помощью NumPy, используя код на картинке.

@python_job_interview
Как управляется память в Python?

Ответ
В Python оператор присваивания (=) не копирует объекты. Вместо этого он создает связь между существующим объектом и именем целевой переменной. Чтобы создать копии объекта в Python, необходимо использовать модуль copy. Более того, существует два способа создания копий для данного объекта с помощью модуля copy.

Shallow Copy – это побитовая копия объекта. Созданный скопированный объект имеет точную копию значений в исходном объекте. Если одно из значений является ссылкой на другие объекты, копируются только адреса ссылок на них.
Deep Copy – рекурсивно копирует все значения от исходного объекта к целевому, т. е. дублирует даже объекты, на которые ссылается исходный объект.
На картинке показан пример использования сopy и deepcopy.

@python_job_interview
Что такое pass в Python?

Ответ
Pass - представляет собой нулевую операцию в Python. Обычно она используется для заполнения пустых блоков кода, который может выполняться во время исполнения. В примере, приведенном ниже, без оператора pass можно столкнуться с ошибкой как <<IndentationError>> во время выполнения кода.

@python_job_interview
machinelearning_interview - канал подготовит к собеседованию по машинному обучению, статисике ,алгоритмам и науке о данных.

golang_interview - Вопросы с настоящих Golang собеседований, помогут Вам получить успешно пройти интервью.

@data_analysis_ml - аналитика данных на Python.
#Вопросы_с_собеседования

В каких ситуациях пользуются методом rfind()?

Метод rfind() похож на метод find(), но он, в отличие от find(), просматривает строку не слева направо, а справа налево, возвращая индекс первого найденного вхождения искомой подстроки.

@python_job_interview
Какие отличия между массивом и списком в Python?

Массивы содержат только элементы одинаковых типов данных, то есть тип данных массива должен быть однородным. Массивы потребляют меньше памяти.

Списки содержат элементы разных типов данных, то есть тип данных списков может быть неоднородным. Их недостатком является потребление большого объема памяти.

Пример использования массива и списка на картинке.

@python_job_interview
Расскажите о наиболее общих командах Docker

Ответ:
docker push: Закачать репозиторий или образ в Registry;
docker run: Запустить команду в новом контейнере;
docker pull: Скачать репозиторий или образ из Registry;
docker start: Запустить один или несколько контейнеров;
docker stop: Остановить один или несколько контейнеров;
docker search: Поиск образа на DockerHub;
docker commit: Сохранить изменения в новый образ.

Docker exec - выполнить команду в контейнере
Docker ps (-a) - показать запущенные (все контейнеры)
Docker rm - удалить контейнер
Docker images - посмотреть имеющиеся локальные образы


@python_job_interview
Используются ли в python спецификаторы доступа?

Ответ:

Python не использует спецификаторы доступа, такие как private, public, protected и т. д. Однако, в нем есть концепция имитации поведения переменных путем использования одинарного (protected) или двойного подчеркивания (private) в качестве префикса к именам переменных. По умолчанию переменные без подчеркивания являются общедоступными.


Пример использования спецификаторы доступов в Python на картинке.

@python_job_interview
⚙️ Как делается перегрузка операторов в Python?

Ответ

Перегрузка оператора – это возможность переопределять различные операторы в классах, то есть менять операции, которые они выполняют, в зависимости от контекста. В Python есть операторы такие как: сложение, вычитание и т. д., которые можно перегрузить для класса.

Пример использования на картинке.

В примере показано использование перезагрузки операторов. Данные методы не вызываются напрямую, но вызываются встроенными функциями или операторами.

➡️ Читать подробнее

@python_job_interview