11

Python. Вопросы собеседований 81 - 90

Вопросы 👉 1 - 10
Вопросы 👉 11 - 20
Вопросы 👉 21 - 30
Вопросы 👉 31 - 40
Вопросы 👉 41 - 50
Вопросы 👉 51 - 60
Вопросы 👉 61 - 70
Вопросы 👉 71 - 80


Вопросы

Вопрос 81. Как можно сконкатенировать (объединить) два списка в Python?

  • A. Используя оператор *

  • B. Используя оператор +

  • C. Используя метод append()

  • D. Используя метод concat()

Вопрос 82. Какой будет результат выполнения следующего кода?

Python. Вопросы собеседований 81 - 90 Python, Гайд, Инструкция, Собеседование, Программирование, Длиннопост
  • A. 1

  • B. 5

  • C. 120

  • D. Вызовет ошибку переполнения стека.

Вопрос 83. Что произойдет, если не указать тип исключения в блоке except конструкции try-except в Python?

  • A. Блок except пропустит все исключения.

  • B. Блок except перехватит все исключения, независимо от их типа.

  • C. Программа немедленно завершится с ошибкой.

  • D. Блок except обработает только исключения типа Exception.

Вопрос 84. Какой результат будет получен при выполнении следующего кода Python?

Python. Вопросы собеседований 81 - 90 Python, Гайд, Инструкция, Собеседование, Программирование, Длиннопост
  • A. True True True True

  • B. True False True False

  • C. False True False True

  • D. True True False True

Вопрос 85. Что делает ключевое слово continue в цикле?

  • A. Немедленно выходит из цикла.

  • B. Пропускает оставшуюся часть кода внутри цикла для текущей итерации.

  • C. Приостанавливает выполнение цикла.

  • D. Ничего из вышеперечисленного.

Вопрос 86. Как создать множество (set) в Python?

  • A. set = {1, 2, 3}

  • B. set = [1, 2, 3]

  • C. set = (1, 2, 3)

  • D. set = '123'

Вопрос 87. Что делает функция dict() в Python?

  • A. Создает новый словарь.

  • B. Преобразует кортеж в словарь.

  • C. Преобразует список кортежей в словарь.

  • D. Оба варианта A и C верны.

Вопрос 88. Каково назначение блока else в инструкции try...except?

  • A. Выполнить код после блока try, если не было выброшено ни одного исключения.

  • B. Обработать исключение, если блок except не смог его обработать.

  • C. Всегда выполняться после блока try, независимо от того, было ли выброшено исключение или нет.

  • D. Проверить дополнительное условие после блоков try и except.

Вопрос 89. Что такое "магические методы" (magic methods) в Python и для чего они нужны?

  • A. Это методы, которые вызываются только в особых ситуациях, например, при обработке исключений.

  • B. Это методы, которые могут изменять внутреннее состояние объектов, но не видны при вызове.

  • C. Это методы, имена которых начинаются и заканчиваются двойным подчеркиванием, и которые вызываются неявно встроенными функциями или синтаксическими конструкциями.

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

Вопрос 90. В чем разница между == и is в Python?

  • A. == проверяет равенство по значению, тогда как is проверяет равенство в области памяти.

  • B. == проверяет, указывают ли переменные на один и тот же объект, тогда как is проверяет равенство значения.

  • C. == используется для строк, а is — для чисел.

  • D. Разницы нет; оба используются взаимозаменяемо.


Ответы

81. Правильный ответ: B. Используя оператор +

Объяснение:

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

  • Оператор +:

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

    • Исходные списки не изменяются.

Разбор вариантов:

  • Используя оператор *: Неправильно. Оператор * используется для повторения списка определенное количество раз.

  • Используя оператор +: Правильно. Оператор + используется для конкатенации (объединения) списков.

  • Используя метод append(): Неправильно. Метод append() добавляет один элемент в конец существующего списка, а не объединяет два списка.

  • Используя метод concat(): Неправильно. В Python нет встроенного метода concat() для списков.

Пример конкатенации списков с оператором +:

Python. Вопросы собеседований 81 - 90 Python, Гайд, Инструкция, Собеседование, Программирование, Длиннопост

В результате:

  • Оператор + является наиболее простым и распространенным способом объединения списков в Python.

  • Исходные списки не изменяются, а создается новый список, который содержит все элементы двух исходных списков.

  • Конкатенация списков через + может быть менее эффективной для больших списков.

Таким образом, правильным ответом является Используя оператор +.


82. Правильный ответ: C

Объяснение:

Данный код реализует рекурсивную функцию для вычисления факториала числа. Функция my_function(n) возвращает n! (факториал n).

  • Базовый случай: Если n равно 0, функция возвращает 1 (факториал 0 равен 1).

  • Рекурсивный случай: Если n больше 0, функция возвращает n умноженное на результат вызова самой себя с n-1.

Таким образом, вызов my_function(5) будет выполнен следующим образом:

my_function(5) = 5 * my_function(4)
my_function(4) = 4 * my_function(3)
my_function(3) = 3 * my_function(2)
my_function(2) = 2 * my_function(1)
my_function(1) = 1 * my_function(0)
my_function(0) = 1

Подставляя значения снизу вверх, получаем:

1 * 1 * 2 * 3 * 4 * 5 = 120

Следовательно, результат вызова print(my_function(5)) будет 120.


Дополнительные замечания:

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

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

Python. Вопросы собеседований 81 - 90 Python, Гайд, Инструкция, Собеседование, Программирование, Длиннопост

Итеративная реализация часто более эффективна по памяти, так как не использует стек вызовов.


83. Правильный ответ: B

Объяснение:

Если вы не укажете тип исключения в блоке except, то он будет действовать как обработчик для всех исключений, которые могут возникнуть в блоке try. Это может быть полезно для отлова любых непредвиденных ошибок, но в некоторых ситуациях это может помешать в точной отладке кода, поскольку будет трудно определить тип произошедшей ошибки.

  • Вариант A не верен: Блок except не пропускает исключения.

  • Вариант B верен: Блок except без указания типа перехватывает любое исключение.

  • Вариант C не верен: Программа не завершится при перехвате исключения.

  • Вариант D не верен: Исключения класса Exception обрабатываются только, если они указаны явно.

Пример:

Python. Вопросы собеседований 81 - 90 Python, Гайд, Инструкция, Собеседование, Программирование, Длиннопост

В результате:

  • В первом примере блок except перехватывает исключение ZeroDivisionError.

  • Во втором примере, первое except перехватывает ValueError, а второе except не будет выполняться, так как исключение уже было обработано.

Таким образом, вариант B является правильным.


84. Правильный ответ: D

Объяснение:

Код проверяет, являются ли два слова анаграммами (состоят из одних и тех же букв, но в разном порядке).

  1. Функция anagram(word1, word2):

    • Преобразует оба слова в нижний регистр (lower()).

    • Сортирует буквы каждого слова (sorted()).

    • Если отсортированные буквы одинаковы, возвращает True (слова - анаграммы), иначе False.

  2. Результаты вызовов:

    • "cinema" и "iceman": Анаграммы. sorted("cinema") == sorted("iceman") -> True

    • "cool" и "loco": Анаграммы. sorted("cool") == sorted("loco") -> True

    • "men" и "women": Не анаграммы. sorted("men") != sorted("women") -> False

    • "python" и "pythno": Анаграммы. sorted("python") == sorted("pythno") -> True

Таким образом, вывод программы: True True False True.


85. Правильный ответ: B

Объяснение:

Ключевое слово continue в Python используется внутри циклов (например, for и while) для пропуска оставшейся части текущей итерации и перехода к следующей итерации цикла.

  • Вариант A не верен: continue не прерывает цикл, а только текущую итерацию. Для прерывания цикла используется break.

  • Вариант B верен: continue пропускает оставшийся код в текущей итерации и переходит к следующей.

  • Вариант C не верен: continue не приостанавливает выполнение цикла.

  • Вариант D не верен: Вариант B верен.

Как работает continue:

  1. Когда интерпретатор Python встречает continue внутри цикла, он пропускает все оставшиеся операторы текущей итерации.

  2. Выполнение программы переходит к следующей итерации цикла, то есть условие в while или следующему элементу в for цикле.

  3. Пропуск итерации происходит только для текущей итерации, остальные итерации цикла работают как обычно.

Типичные примеры использования:

  1. Пропуск определенной итерации: Когда нужно пропустить определенные итерации, основываясь на каком-то условии.

  2. Фильтрация данных: Когда нужно пропустить некоторые элементы в итерируемой структуре.

Пример:

Python. Вопросы собеседований 81 - 90 Python, Гайд, Инструкция, Собеседование, Программирование, Длиннопост

В результате:

  • В цикле for выводятся только нечетные числа, так как continue пропускает итерацию для четных чисел.

  • В цикле while выводятся все числа, кроме тех что делятся на 3.

Таким образом, вариант B является правильным.


86. Правильный ответ: A

Объяснение:

В Python множество (set) создается с использованием фигурных скобок {}, в которые помещаются уникальные, хешируемые элементы.

  • Вариант A верен: set = {1, 2, 3} - это корректный способ создания множества.

  • Вариант B не верен: set = [1, 2, 3] - создает список (list), а не множество.

  • Вариант C не верен: set = (1, 2, 3) - создает кортеж (tuple), а не множество.

  • Вариант D не верен: set = '123' - создает строку (str), а не множество.

Ключевые характеристики множества (set):

  1. Уникальность элементов: Множество содержит только уникальные элементы, дубликаты автоматически удаляются.

  2. Неупорядоченность: Элементы в множестве не хранятся в каком-либо определенном порядке.

  3. Мутабельность: Множества являются изменяемыми, что позволяет добавлять и удалять элементы после создания множества.

Пример:

Python. Вопросы собеседований 81 - 90 Python, Гайд, Инструкция, Собеседование, Программирование, Длиннопост

В результате:

  • my_set = {1, 2, 3} создает множество, содержащее целые числа 1, 2 и 3.

  • При создании множества my_set_dupl дубликаты автоматически удаляются.

Таким образом, вариант A является верным ответом.


87. Правильный ответ: D

Объяснение:

Функция dict() в Python используется для создания словаря. Она может принимать разные типы аргументов для этого.

  • Вариант A верен: dict() может быть вызвана без аргументов и создаст пустой словарь.

  • Вариант B не верен: Функция dict() не преобразует кортеж в словарь. Кортеж должен содержать пары ключ значение, чтобы был создан словарь.

  • Вариант C верен: dict() может преобразовать список кортежей, где каждый кортеж представляет собой пару ключ-значение, в словарь.

  • Вариант D верен: Так как и A, и C верны.

Как работает dict():

  1. Без аргументов: Если dict() вызывается без аргументов, он создает пустой словарь.

  2. С аргументами:

    • Если dict() вызывается с одним аргументом — списком кортежей, где каждый кортеж состоит из двух элементов (ключа и значения) то он создаст словарь из этих пар ключ-значение.

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

Примеры:

Python. Вопросы собеседований 81 - 90 Python, Гайд, Инструкция, Собеседование, Программирование, Длиннопост

В результате:

  • dict() без аргументов создает пустой словарь.

  • dict(my_list) создает словарь из списка кортежей.

  • dict(a=1, b=2, c=3) создает словарь с ключами "a","b","c" и соответсвующими значениями.

Таким образом, вариант D является верным.


88. Правильный ответ: A

Объяснение:

В Python блок else в конструкции try...except выполняется только в том случае, если блок try выполнился без возникновения исключений.

  • Вариант A верен: else выполняется, если блок try завершился успешно без исключений.

  • Вариант B не верен: Если except не может обработать исключение, программа аварийно завершится. else не предназначен для обработки исключений, которые не поймал except.

  • Вариант C не верен: Для действий, которые выполняются всегда, независимо от наличия исключений, используется блок finally, а не else.

  • Вариант D не верен: Блок else не проверяет дополнительные условия, он просто выполняется при успешном выполнении блока try.

Как работает try...except...else:

  1. Сначала выполняется код в блоке try.

  2. Если в блоке try возникает исключение, то управление переходит в блок except (если есть соответствующий тип исключения) или далее по цепочке.

  3. Если в блоке try не возникает исключения, то выполняется блок else, который расположен после всех блоков except.

  4. Блок finally выполняется всегда вне зависимости от того, было ли исключение или нет.

Пример:

Python. Вопросы собеседований 81 - 90 Python, Гайд, Инструкция, Собеседование, Программирование, Длиннопост

В результате:

  • При вызове process_number(2) ошибок нет и выполняется блок else, выводя "Результат деления: 5.0".

  • При вызове process_number(0) происходит ZeroDivisionError и код переходит в блок except, выводя "Ошибка: деление на ноль" и не выполняя блок else.

Таким образом, вариант A является верным.


89. Правильный ответ: C

Объяснение:

"Магические методы" (также известные как "dunder methods" от "double underscore") в Python - это специальные методы, которые имеют предопределенные имена, начинающиеся и заканчивающиеся двумя подчеркиваниями (например, __init__, __len__, __add__). Они используются для определения поведения объектов при применении к ним встроенных функций, операторов или синтаксических конструкций.

  • Определение:

    • Магические методы имеют имена вида __имя__.

    • Они не вызываются напрямую (обычно), а вызываются автоматически при выполнении определённых операций.

  • Назначение:

    • Позволяют объектам вести себя как встроенные типы данных.

    • Позволяют переопределять поведение операторов и функций для пользовательских типов.

    • Реализуют поддержку протоколов и концепций Python, таких как итерация, сложение, сравнение, строковое представление и т.д.

Примеры:

  • __init__(self, ...): Вызывается при создании нового объекта (конструктор).

  • __len__(self): Вызывается функцией len().

  • __add__(self, other): Вызывается оператором сложения +.

  • __str__(self): Вызывается функцией str() или при использовании print().

  • __repr__(self): Вызывается функцией repr().

  • __iter__(self) и __next__(self): Используются для реализации итераторов.

  • __getitem__(self, key): Вызывается при доступе к элементу по индексу obj[key].

Разбор вариантов:

  • A. Это методы, которые вызываются только в особых ситуациях, например, при обработке исключений: Неправильно. Хотя некоторые магические методы связаны с исключениями (__enter__, __exit__), их основное применение шире.

  • B. Это методы, которые могут изменять внутреннее состояние объектов, но не видны при вызове: Неправильно. Магические методы не только могут изменять состояние, но и вызываются неявно, а не скрыты.

  • C. Это методы, имена которых начинаются и заканчиваются двойным подчеркиванием, и которые вызываются неявно встроенными функциями или синтаксическими конструкциями: Правильно. Это точное определение магических методов.

  • D. Это методы, которые используются для отладки программ и вывода информации о переменных: Неправильно. Хотя __str__ и __repr__ могут использоваться для вывода информации, это не их основное назначение.

В результате:

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

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

Таким образом, правильным ответом является C. Это методы, имена которых начинаются и заканчиваются двойным подчеркиванием, и которые вызываются неявно встроенными функциями или синтаксическими конструкциями.


90. Правильный ответ: A

Объяснение:

В Python операторы == и is используются для сравнения, но они делают это по-разному:

  • == (равно): Этот оператор сравнивает значения объектов. Он возвращает True, если значения объектов равны, и False в противном случае.

  • is (является): Этот оператор сравнивает идентичность объектов. Он возвращает True, если обе переменные указывают на один и тот же объект в памяти, и False в противном случае.

  • Вариант A верен: == проверяет равенство значений, а is проверяет идентичность (указывают ли переменные на один и тот же объект в памяти).

  • Вариант B не верен: Наоборот, == проверяет равенство значений, а is проверяет идентичность.

  • Вариант C не верен: == и is используются для любого типа данных.

  • Вариант D не верен: == и is не взаимозаменяемы, у них разное назначение.

Подробное объяснение:

  • ==: Сравнивает значения объектов, используя метод __eq__(), который может быть переопределен для пользовательских классов.

  • is: Сравнивает идентификаторы объектов, то есть адреса памяти. Если две переменные ссылаются на один и тот же объект в памяти, то is вернет True.

Пример:

Python. Вопросы собеседований 81 - 90 Python, Гайд, Инструкция, Собеседование, Программирование, Длиннопост

В результате:

  • a и b содержат списки с одинаковыми значениями, поэтому a == b дает True, но это два разных объекта в памяти, поэтому a is b дает False.

  • a и c ссылаются на один и тот же объект, поэтому a is c возвращает True

  • Для небольших чисел Python может создавать одинаковые объекты в памяти, для оптимизации работы, поэтому для num3 и num4 оператор is вернул True.

Таким образом, вариант A является правильным.


Удачи!

Больше постов читайте по тегу «Программирование». А если хотите изучить новую профессию, посмотрите актуальные курсы от проверенных школ с реальными отзывами на сайте Пикабу Курсы.

Правила сообщества

Публиковать могут пользователи с любым рейтингом. Однако!


Приветствуется:

• уважение к читателям и авторам

• конструктивность комментариев

• простота и информативность повествования

• тег python2 или python3, если актуально

• код публиковать в виде цитаты, либо ссылкой на специализированный сайт


Не рекомендуется:

• допускать оскорбления и провокации

• распространять вредоносное ПО

• просить решить вашу полноценную задачу за вас

• нарушать правила Пикабу