Share This
Связаться со мной
Крути в низ
Categories
//Вопросы на собеседовании для Junior Python-разработчика

Вопросы на собеседовании для Junior Python-разработчика

04.10.2021Category : Python

Вы ищете работу на Python? В этой статье мы разберем основные вопросы на собеседовании на позицию Junior Python-разработчика. А чтобы вы могли быстрее подготовиться к собеседованию, ко всем вопросам мы добавили ответы.

Мы составили этот список, основываясь на десятках технических собеседований в ведущие технологические компании. Прочитав вопросы, отметьте те, на которые вы не смогли сразу дать ответ. Затем, при повторном прочтении, пройдите только те вопросы, которые вызвали у вас затруднения. Пройдя по этому списку два-три раза, вы будете хорошо подготовлены к техническому собеседованию по Python.

Заметим, что в этом посте мы разберем вопросы именно для младших разработчиков (джунов). Вопросы на более высокие позиции будут разобраны в отдельной статье.

Итак, давайте преступим! Какие же вопросы задают на собеседовании на позицию Python-разработчика уровня Junior?

1. Каковы преимущества использования Python?

Эффективность. Python очень хорошо справляется с управлением памятью. Если вы работаете с большими объемами данных, разработку лучше вести на Python.

Скорость. Хотя Python — интерпретируемый язык, все же он имеет очень высокую производительность.

Широта использования. Python используется самыми разными организациями и для разных типов проектов. Из-за такого широкого спектра применения нам доступны тысячи надстроек.

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

voprosy na sobesedovanii dlja junior python razrabotchika f035eba - Вопросы на собеседовании для Junior Python-разработчика

Марк Лутц «Изучаем Python»

Скачивайте книгу у нас в телеграм

Скачать ×

2. Что такое PEP 8 и зачем он нужен?

PEP 8 – это руководство по стилю кода Python.

В этом документе представлены общепринятые соглашения о написании кода на Python. Эти соглашения касаются отступов, форматирования, табуляции, максимальной длины строки, организации импорта, межстрочного интервала и т.д.

Согласованность кода упрощает его чтение другими разработчиками. А чтобы обеспечить согласованность, мы придерживаемся PEP 8.

3. В чем разница между кортежем и списком в Python?

В Python кортежи и списки – это встроенные структуры данных. Вот несколько различий между списком (list) и кортежем (tuple):

  • Синтаксис. Кортеж заключается в круглые скобки, а список – в квадратные.
  • Изменяемость. Кортеж – это неизменяемая структура данных, а список – изменяемая.
  • Размер. Кортеж занимает гораздо меньше места, чем список в Python.
  • Производительность. Кортеж быстрее, чем список. Как следствие, это дает нам хорошую производительность.

4. В чем разница между списком и словарем в Python?

Это также встроенные структуры данных. Основные же различия между списком (list) и словарем (dictionary) в Python заключаются в следующем:

  • Синтаксис. В списке мы храним объекты в виде последовательности. В словаре объекты хранятся в виде пар «ключ-значение».
  • Обращение к элементу. К элементам списка мы обращаемся по индексу (помним, что индексация начинается с 0). К объектам, хранящимся в словаре, мы обращаемся по ключам, указанным при создании словаря.
  • Упорядоченность. Элементы списка хранятся в упорядоченной последовательности. В словаре объекты не упорядочены.
  • Хеширование. Ключи в словаре должны быть хешируемыми. В списке же нет необходимости в хешировании.

5. Какие встроенные типы доступны в Python?

В Python доступные следующие типы данных:

  • Числовые типы – это типы, используемые для представления чисел в Python.
    • int: используется для целых чисел.
    • long: предназначался для очень больших целых чисел неограниченной длины. В Python 3 не используется, поскольку в этой версии все int по умолчанию являются long.
    • float: используется для десятичных чисел.
    • complex: используется для представления комплексных чисел.
  • Типы последовательностей – эти типы используются для представления последовательностей символов или объектов.
    • str: представляет собой последовательность символов, строку.
    • bytes: это последовательность целых чисел в диапазоне 0–255.
    • байтовый массив: работает как байты, но является изменяемым, доступен только в Python.
    • list (список): это последовательность объектов.
    • tuple (кортеж): неизменяемая последовательность объектов.
  • Множества – это неупорядоченные коллекции уникальных и неизменяемых элементов.
    • set: изменяемый набор уникальных объектов.
    • frozenset: неизменяемый набор уникальных объектов.
  • Словари (dict). Также называются хэш-картой. Содержат пары «ключ-значение» для хранения информации с помощью хеширования.

6. Как объединить несколько строк в Python?

Для объединения нескольких строк в Python можно использовать следующие способы:

1. При помощи оператора +. Например:

firstname = "John"  lastname = "Ray"  print(firstname+lastname)  # Output: JohnRay 

2. При помощи функции join(). Например:

".join{['John','Ray'])  # Output: 'JohnRay' 

7. Зачем использовать оператор pass в Python?

Оператор pass используется в качестве заполнителя для будущего кода. При выполнении ничего не происходит, но вы избегаете ошибки, если пустой код не разрешен. Пустой код не допускается в циклах, определениях функций, определениях классов или в операторах if.

8. Зачем нужны срезы в Python?

Срезы – это строковая операция для получения подстроки или некоторой части списка.

В Python строка (скажем, текст) начинается с индекса 0, а n-й символ сохраняется в позиции text[n-1]. Кроме того, Python также может выполнять обратную индексацию (в обратном направлении), с помощью отрицательных чисел.

В Python есть специальная функция-конструктор, которая генерирует объект среза, — slice(). Результатом ее работы является набор индексов, заданных диапазоном (start, stop, step).

Метод slice() принимает три параметра: start – номер для начала среза, stop — число, обозначающее конец среза, и step – шаг, с которым мы будем передвигаться по объекту. Шаг по умолчанию равен 1, то есть мы перебираем элементы по очереди, ничего не пропуская.

От редакции Pythonist. Больше о срезах можно почитать в статье «Применение срезов списков без указания индексов в Python».

9. В чем разница между итератором и итерируемым объектом в Python?

Итераторы в Python – это объекты, похожие на массивы, которые позволяют переходить от одного элемента к другому. Мы используем их при обходе цикла, например, в цикле for.

В библиотеке Python есть несколько итераторов. Например, список также является итератором, и мы можем запустить цикл for по нему.

Коллекции, т.е. такие типы, как список, кортеж, словарь и множество, – являются итерируемыми объектами. Кроме того, они также являются итеративными контейнерами, которые возвращают итератор во время обхода цикла.

10. Что такое лямбда-выражение в Python?

Лямбда-выражение в Python используется для создания анонимной функции, которая может принимать любое количество аргументов, но может иметь только одно выражение.

Лямбда-функция не содержит блока инструкций. Она также не содержит операторов возврата. Обычно используется в ситуациях, когда требуется анонимная функция в течение короткого периода времени.

11. Что такое None в Python?

Ключевое слово None в Python представляет нулевые значения. Объект None имеет тип NoneType. С использованием таких объектов может быть выполнена операция логического равенства.

12. Как используется оператор // в Python?

Python предоставляет оператор // для выполнения целочисленного деления одного числа на другое. Результатом работы этого оператора является целое число, полученное в результате деления левого числа на правое.

С той же целью можно использовать функцию floordiv(a, b).

13. Что такое модуль в Python?

Модуль – это файл, написанный на Python и содержащий код с инструкциями импорта, классами, функциями и т.д.

Модули можно импортировать в другой файл Python.

С помощью модулей функциональность приложений может быть разделена на более мелкие части для структурирования программы.

Папка программы Python – это пакет модулей. Такой пакет может содержать модули или подпапки.

14. Можно ли создать словарь с упорядоченным набором ключей в Python?

В обычном словаре ключи не упорядочиваются. Чтобы решить эту проблему, можно использовать класс OrderDict. Класс доступен начиная с версии 2.7.

15. Python – это объектно-ориентированный язык программирования или язык функционального программирования?

Python – это объектно-ориентированный язык программирования. Однако его можно рассматривать как процедурный, а также как структурный язык.

16. В чем разница между списковыми методами append() и extend() в Python?

В Python методы append() и extend() используются для добавления элементов в конец списка. Однако между ними есть определенная разница.

  • append(элемент): добавляет элемент, переданный в качестве аргумента, в конец списка.
  • extend(другой_список): добавляет в конец списка элементы другого списка.

17. Что такое ошибки и исключения в программах на Python?

Ошибки – это проблемы с кодом в программе, которые могут привести к ее ненормальному завершению (получению не того результата, который мы хотели). Исключения возникают из-за возникновения внешнего события, которое прерывает нормальный ход программы.

Пожалуй, это все основные вопросы, которые точно встретятся у вас на собеседовании, если вы претендуете на джуниорскую позицию разработчика на Python.

Заключение

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

Надеемся, вы с легкостью смогли ответить на все. Если нет – ничего страшного, изучите тему, в которой вы не уверены и обязательно пройдитесь по этому списку несколько раз. Тогда вы точно будете уверены в своих знаниях перед собеседованием! Успехов!

Перевод статьи «Python interview questions and answers to know before interviewing».

  • 1 views
  • 0 Comment

Leave a Reply

Ваш адрес email не будет опубликован.

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

Свежие комментарии

    Рубрики

    About Author 01.

    blank
    Roman Spiridonov

    Моя специальность - Back-end Developer, Software Engineer Python. Мне 39 лет, я работаю в области информационных технологий более 5 лет. Опыт программирования на Python более 3 лет. На Django более 2 лет.

    Categories 05.

    © Speccy 2022 / All rights reserved

    Связаться со мной
    Close