Вы ищете работу на 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».
Если вы ищете работу на Python, на Talanto.work сейчас есть варианты для junior, middle, senior…
Рынок Python-вакансий большой, но удобным его назвать сложно. Формально вакансий много, однако в реальном поиске…
Срезы в Python — это больше, чем a[2:7]. В статье — быстрый разбор полезных приёмов:…
В этой статье мы рассмотрим возведение в степень в Python с помощью различных методов, от…
Дубликаты в списке Python — частая проблема. В статье показано, как быстро убрать повторы, в…
Услуга виртуального хостинга на SpaceWeb позволяет арендовать часть сервера (shared-сервера) и разместить на нём свой…