Вы ищете работу на Python? В этой статье мы разберем основные вопросы на собеседовании на позицию Junior Python-разработчика. А чтобы вы могли быстрее подготовиться к собеседованию, ко всем вопросам мы добавили ответы.
Мы составили этот список, основываясь на десятках технических собеседований в ведущие технологические компании. Прочитав вопросы, отметьте те, на которые вы не смогли сразу дать ответ. Затем, при повторном прочтении, пройдите только те вопросы, которые вызвали у вас затруднения. Пройдя по этому списку два-три раза, вы будете хорошо подготовлены к техническому собеседованию по Python.
Заметим, что в этом посте мы разберем вопросы именно для младших разработчиков (джунов). Вопросы на более высокие позиции будут разобраны в отдельной статье.
Итак, давайте преступим! Какие же вопросы задают на собеседовании на позицию Python-разработчика уровня Junior?
Эффективность. Python очень хорошо справляется с управлением памятью. Если вы работаете с большими объемами данных, разработку лучше вести на Python.
Скорость. Хотя Python — интерпретируемый язык, все же он имеет очень высокую производительность.
Широта использования. Python используется самыми разными организациями и для разных типов проектов. Из-за такого широкого спектра применения нам доступны тысячи надстроек.
Простота изучения. Python довольно легок в изучении. Возможно, это самое большое его преимущество. При этом на Python можно легко реализовать решение сложных задач.
[python_ad_block]PEP 8 – это руководство по стилю кода Python.
В этом документе представлены общепринятые соглашения о написании кода на Python. Эти соглашения касаются отступов, форматирования, табуляции, максимальной длины строки, организации импорта, межстрочного интервала и т.д.
Согласованность кода упрощает его чтение другими разработчиками. А чтобы обеспечить согласованность, мы придерживаемся PEP 8.
В Python кортежи и списки – это встроенные структуры данных. Вот несколько различий между списком (list) и кортежем (tuple):
Это также встроенные структуры данных. Основные же различия между списком (list) и словарем (dictionary) в Python заключаются в следующем:
В Python доступные следующие типы данных:
int
: используется для целых чисел.long
: предназначался для очень больших целых чисел неограниченной длины. В Python 3 не используется, поскольку в этой версии все int по умолчанию являются long.float
: используется для десятичных чисел.complex
: используется для представления комплексных чисел.str
: представляет собой последовательность символов, строку.bytes
: это последовательность целых чисел в диапазоне 0–255.set
: изменяемый набор уникальных объектов.frozenset
: неизменяемый набор уникальных объектов.Для объединения нескольких строк в Python можно использовать следующие способы:
1. При помощи оператора +
. Например:
firstname = "John" lastname = "Ray" print(firstname+lastname) # Output: JohnRay
2. При помощи функции join()
. Например:
".join{['John','Ray']) # Output: 'JohnRay'
Оператор pass
используется в качестве заполнителя для будущего кода. При выполнении ничего не происходит, но вы избегаете ошибки, если пустой код не разрешен. Пустой код не допускается в циклах, определениях функций, определениях классов или в операторах if
.
Срезы – это строковая операция для получения подстроки или некоторой части списка.
В Python строка (скажем, текст) начинается с индекса 0, а n-й символ сохраняется в позиции text[n-1]
. Кроме того, Python также может выполнять обратную индексацию (в обратном направлении), с помощью отрицательных чисел.
В Python есть специальная функция-конструктор, которая генерирует объект среза, — slice()
. Результатом ее работы является набор индексов, заданных диапазоном (start
, stop
, step
).
Метод slice()
принимает три параметра: start
– номер для начала среза, stop
— число, обозначающее конец среза, и step
– шаг, с которым мы будем передвигаться по объекту. Шаг по умолчанию равен 1, то есть мы перебираем элементы по очереди, ничего не пропуская.
От редакции Pythonist. Больше о срезах можно почитать в статье «Применение срезов списков без указания индексов в Python».
Итераторы в Python – это объекты, похожие на массивы, которые позволяют переходить от одного элемента к другому. Мы используем их при обходе цикла, например, в цикле for
.
В библиотеке Python есть несколько итераторов. Например, список также является итератором, и мы можем запустить цикл for
по нему.
Коллекции, т.е. такие типы, как список, кортеж, словарь и множество, – являются итерируемыми объектами. Кроме того, они также являются итеративными контейнерами, которые возвращают итератор во время обхода цикла.
Лямбда-выражение в Python используется для создания анонимной функции, которая может принимать любое количество аргументов, но может иметь только одно выражение.
Лямбда-функция не содержит блока инструкций. Она также не содержит операторов возврата. Обычно используется в ситуациях, когда требуется анонимная функция в течение короткого периода времени.
Ключевое слово None в Python представляет нулевые значения. Объект None имеет тип NoneType. С использованием таких объектов может быть выполнена операция логического равенства.
Python предоставляет оператор //
для выполнения целочисленного деления одного числа на другое. Результатом работы этого оператора является целое число, полученное в результате деления левого числа на правое.
С той же целью можно использовать функцию floordiv(a, b)
.
Модуль – это файл, написанный на Python и содержащий код с инструкциями импорта, классами, функциями и т.д.
Модули можно импортировать в другой файл Python.
С помощью модулей функциональность приложений может быть разделена на более мелкие части для структурирования программы.
Папка программы Python – это пакет модулей. Такой пакет может содержать модули или подпапки.
В обычном словаре ключи не упорядочиваются. Чтобы решить эту проблему, можно использовать класс OrderDict
. Класс доступен начиная с версии 2.7.
Python – это объектно-ориентированный язык программирования. Однако его можно рассматривать как процедурный, а также как структурный язык.
В Python методы append()
и extend()
используются для добавления элементов в конец списка. Однако между ними есть определенная разница.
append(элемент)
: добавляет элемент, переданный в качестве аргумента, в конец списка.extend(другой_список)
: добавляет в конец списка элементы другого списка.Ошибки – это проблемы с кодом в программе, которые могут привести к ее ненормальному завершению (получению не того результата, который мы хотели). Исключения возникают из-за возникновения внешнего события, которое прерывает нормальный ход программы.
Пожалуй, это все основные вопросы, которые точно встретятся у вас на собеседовании, если вы претендуете на джуниорскую позицию разработчика на Python.
Мы рассмотрели основные вопросы, которые могут задать на собеседовании начинающему разработчику.
Надеемся, вы с легкостью смогли ответить на все. Если нет – ничего страшного, изучите тему, в которой вы не уверены и обязательно пройдитесь по этому списку несколько раз. Тогда вы точно будете уверены в своих знаниях перед собеседованием! Успехов!
Перевод статьи «Python interview questions and answers to know before interviewing».
Pydantic - это мощная библиотека проверки данных и управления настройками для Python, созданная для повышения…
Python предлагает набор библиотек, удовлетворяющих различные потребности в визуализации, будь то академические исследования, бизнес-аналитика или…
В Python для представления данных в двоичной форме можно использовать байты. Из этой статьи вы…
В этой статье рассказывается о том, что такое Werkzeug и как Flask использует его для…
При работе с датами часто возникает необходимость прибавлять к дате или вычитать из нее различные…
В этом руководстве мы рассмотрим, как добавить социальную аутентификацию с помощью GitHub и Google в…