Найти в Дзене
1001 строк кода

Готовимся к собеседованию pyton. вопросы 51 - 60⁠⁠

Вопрос 51.
Какова цель функции dir() в Python, особенно при изучении свойств и методов объектов во время выполнения? Вопрос 52.
Как оператор continue в Python влияет на поток управления внутри циклов, и каково его типичное применение? Вопрос 53.
Каково влияние использования оператора del на структуры данных Python и как это влияет на управление памятью и поведение программы? Вопрос 54.
В Python, каково назначение и эффект использования оператора break в циклических конструкциях? Вопрос 55.
Учитывая следующий фрагмент кода Python, каково ожидаемое поведение программы? Вопрос 57.
В программировании на Python для чего используется ключевое слово global? Вопрос 58.
Что вычисляет ключевое слово in в Python в контексте контейнеров данных, таких как списки или строки? Вопрос 59.
Какую встроенную функцию Python вы бы использовали, чтобы найти наибольшее число в списке целых чисел? Вопрос 60.
Каково основное назначение оператора assert в Python? 51, Правильный ответ: C Объяснение: Функция dir()
Оглавление

Вопросы

Вопрос 51.
Какова цель функции dir() в Python, особенно при изучении свойств и методов объектов во время выполнения?

  • A. Функция dir() используется для установки направления выполнения в сложных приложениях, определяя управление потоком на основе зависимостей модуля.
  • B. Она динамически изменяет доступность методов и свойств в объектах для управления видимостью из внешних модулей.
  • C. Эта функция выводит список всех атрибутов и методов любого объекта, предоставляя быстрый способ понять, какие операции может выполнять объект, что полезно для отладки и разработки.
  • D. Функция dir() шифрует имена всех методов и атрибутов в объекте, чтобы защитить код от интроспекции и несанкционированного доступа.

Вопрос 52.
Как оператор continue в Python влияет на поток управления внутри циклов, и каково его типичное применение?

  • A. Оператор continue вызывает немедленное завершение текущей итерации и принудительно завершает цикл, обычно используемый для остановки чрезмерной обработки во вложенных циклах.
  • B. Он пропускает остальную часть кода внутри цикла для текущей итерации и возвращается к условию цикла или следующей итерации, обычно используется для пропуска части цикла при выполнении условия.
  • C. Оператор continue в Python удваивает скорость итерации, пропуская проверку выполнения на каждом шаге цикла.
  • D. Оператор позволяет циклу пропустить все предстоящие итерации и возобновить выполнение с точки, непосредственно следующей за структурой цикла.

Вопрос 53.
Каково влияние использования оператора del на структуры данных Python и как это влияет на управление памятью и поведение программы?

  • A. Оператор del используется для удаления переменных или элементов из структур данных, что немедленно освобождает всю память, связанную с этими элементами, повышая эффективность программы.
  • B. Он помечает элементы для удаления и планирует сборщик мусора для их удаления во время следующего простоя системы, сводя к минимуму влияние на производительность программы.
  • C. Оператор del Python переименовывает переменные и элементы структуры данных, делая их недоступными под их исходными идентификаторами в качестве меры безопасности.
  • D. Оператор del удаляет ссылки на объекты, что потенциально приводит к сборке мусора, если все ссылки удалены, тем самым освобождая память.

Вопрос 54.
В Python, каково назначение и эффект использования оператора break в циклических конструкциях?

  • A. Оператор break используется внутри циклов для немедленного выхода из всей структуры цикла, полностью завершая выполнение цикла при его вызове.
  • B. Он заставляет цикл приостановить выполнение и ожидать ввода пользователя перед продолжением следующей итерации.
  • C. Оператор break в Python удваивает скорость выполнения цикла, разделяя цикл на параллельные задачи с момента вызова.
  • D. Оператор отправляет сигнал прерывания во внешние системы, указывая, что в цикле достигнут предел обработки данных.

Вопрос 55.
Учитывая следующий фрагмент кода Python, каково ожидаемое поведение программы?

-2
  • A. Программа печатает числа от 0 до 4 без прерывания.
  • B. Она печатает числа от 0 до 2, а затем останавливается перед печатью 3.
  • C. Программа выдает ошибку, потому что оператор break неправильно используется вне цикла.
  • D. Она непрерывно печатает число 3 в бесконечном цикле.

Вопрос 57.
В программировании на Python для чего используется ключевое слово global?

  • A. Чтобы объявить, что переменная внутри функции является глобальной и изменяет переменную на уровне модуля.
  • B. Чтобы повысить видимость переменной в разных модулях, импортированных в скрипт.
  • C. Чтобы защитить переменную внутри функции от изменения внешними функциями.
  • D. Чтобы объявить переменную, к которой можно получить доступ в любом месте программы, независимо от области видимости.

Вопрос 58.
Что вычисляет ключевое слово in в Python в контексте контейнеров данных, таких как списки или строки?

  • A. Оно проверяет, существует ли файл в каталоге.
  • B. Оно подтверждает, содержится ли указанный элемент в итерируемом объекте или последовательности справа от оператора.
  • C. Оно используется исключительно внутри циклов для итерации по каждому элементу последовательности.
  • D. Оно изменяет элементы внутри контейнера данных для обеспечения целостности данных.

Вопрос 59.
Какую встроенную функцию Python вы бы использовали, чтобы найти наибольшее число в списке целых чисел?

  • A. max()
  • B. sum()
  • C. len()
  • D. high()

Вопрос 60.
Каково основное назначение оператора assert в Python?

  • A. Определить начальное состояние переменных в начале программы.
  • B. Прервать выполнение программы, если не выполнено указанное условие.
  • C. Гарантировать, что условие в коде остается истинным, вызывая AssertionError, если условие оказывается ложным.
  • D. Зашифровать конфиденциальные данные в приложении для предотвращения утечки данных.

Ответы

51, Правильный ответ: C

Объяснение:

Функция dir() в Python - это встроенная функция, предназначенная для интроспекции, то есть для изучения внутренней структуры объектов во время выполнения программы.

  • Вариант A не верен: dir() не устанавливает направление выполнения кода.
  • Вариант B не верен: dir() не изменяет доступность методов или свойств объекта.
  • Вариант C верен: dir() возвращает список всех атрибутов и методов объекта. Это делает ее полезной для изучения и отладки.
  • Вариант D не верен: dir() не шифрует данные, а помогает их увидеть.

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

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

Применение dir():

  • Отладка: При отладке кода dir() позволяет изучить свойства объекта и понять, какие методы и атрибуты доступны.
  • Изучение библиотек: dir() позволяет изучить содержимое модулей и библиотек, чтобы узнать, какие функции и классы они предоставляют.
  • Исследование объектов: dir() позволяет анализировать пользовательские объекты, чтобы понять, какие у них есть атрибуты и методы.

Пример:

-3

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

  • В примере видно, что dir(my_list) возвращает список всех атрибутов и методов списка, включая как магические методы __add__, так и пользовательские методы append и sort.
  • dir(my_string) возвращает список атрибутов и методов для объекта строки.

Таким образом, вариант C является верным, так как точно описывает функцию dir() и ее применение в отладке и разработке.

52, Правильный ответ: B

Объяснение:

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

  • Вариант A не верен: continue не завершает цикл, а только текущую итерацию.
  • Вариант B верен: continue пропускает оставшийся код в текущей итерации цикла и переходит к следующей.
  • Вариант C не верен: continue не удваивает скорость выполнения циклов.
  • Вариант D не верен: continue переходит к следующей итерации текущего цикла, а не к концу цикла.

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

  1. Когда Python встречает оператор continue внутри цикла, он немедленно переходит к следующей итерации цикла, игнорируя любой код, расположенный после continue в текущей итерации.
  2. В цикле for это означает переход к следующему элементу в последовательности.
  3. В цикле while это означает повторную проверку условия цикла.

Типичные применения continue:

  1. Пропуск итераций: Пропуск итерации на основе определенного условия.
  2. Фильтрация данных: Игнорирование определенных элементов последовательности в цикле.
  3. Обработка исключительных ситуаций: Игнорирование текущей итерации, когда возникает ошибка, и переход к следующей.

Пример:

-4

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

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

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

53, Правильный ответ: D

Объяснение:

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

  • Вариант A не верен: Оператор del удаляет ссылки, а не саму память немедленно.
  • Вариант B не верен: Сборщик мусора Python не имеет расписания.
  • Вариант C не верен: del не переименовывает переменные.
  • Вариант D верен: del удаляет ссылки на объекты, и если объект больше не имеет ссылок, то он становится кандидатом на сборку мусора.

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

  1. Удаление ссылки: Оператор del удаляет ссылку на объект из текущей области видимости.
  2. Уменьшение счетчика ссылок: При удалении ссылки, счетчик ссылок объекта уменьшается.
  3. Сборка мусора: Если счетчик ссылок объекта становится равен нулю (то есть, нет других ссылок на этот объект), объект помечается как недостижимый и становится кандидатом на сборку мусора (Garbage Collection - GC).
  4. Освобождение памяти: Сборщик мусора (GC) освобождает память, занимаемую объектом, в автоматическом режиме.

Влияние на управление памятью и поведение программы:

  • del не гарантирует немедленного освобождения памяти. Сборка мусора выполняется автоматически Python, когда это необходимо.
  • Если удаляется последняя ссылка на объект, то он становится кандидатом на сборку мусора.
  • del используется для управления ссылками на объекты, но не самим объектом, и может помочь высвободить память в долгоживущих программах.

Примеры:

-5

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

  • del my_list[0] удаляет элемент из списка по индексу, сдвигая остальные элементы.
  • После del my_list ссылка my_list удалена, но данные всё ещё доступны через ссылку my_list_2

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

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

Объяснение:

Оператор break в Python используется для немедленного выхода из цикла, в котором он находится.

  • Вариант A верен: break завершает выполнение цикла полностью, независимо от оставшихся итераций.
  • Вариант B не верен: break не приостанавливает выполнение и не ждет ввода пользователя.
  • Вариант C не верен: break не удваивает скорость выполнения циклов.
  • Вариант D не верен: break не отправляет сигналы во внешние системы.

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

  1. Когда Python встречает оператор break внутри цикла (for или while), цикл немедленно прерывается.
  2. Управление передается на первый оператор, следующий за циклом.
  3. Все оставшиеся итерации цикла пропускаются.

Использование break:

  1. Ранний выход: Когда необходимо выйти из цикла до его полного завершения при выполнении определенного условия.
  2. Поиск элементов: При поиске элемента в списке можно использовать break для завершения цикла, как только элемент найден.
  3. Управление бесконечными циклами: break может использоваться для выхода из бесконечного цикла (while True) при наступлении определенного условия.

Пример:

-6

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

  • В цикле for выводится только числа до тех пор, пока не встретится число больше 5, после чего цикл завершается.
  • В цикле while True цикл прерывается, когда x становится больше 5.

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

55, Правильный ответ: B

Объяснение:

В данном коде используется цикл for и оператор break. Давайте разберем работу кода по шагам.

  1. Цикл for: for i in range(5): - Этот цикл итерируется по числам в диапазоне от 0 до 4 включительно (range(5) создает последовательность 0, 1, 2, 3, 4).
  2. Условие: if i == 3: - на каждой итерации проверяется, равно ли текущее значение переменной цикла i числу 3.
  3. Оператор break: Если условие i == 3 выполняется, то вызывается оператор break, который немедленно завершает цикл.
  4. Вывод: print(i) - выводится значение переменной i перед проверкой условия.
  • Вариант A не верен: Цикл не будет выполняться до конца, так как есть оператор break.
  • Вариант B верен: Цикл будет итерироваться с 0 по 4, но при i == 3 цикл прервется, поэтому будут выведены значения от 0 до 2 включительно.
  • Вариант C не верен: Оператор break используется корректно внутри цикла.
  • Вариант D не верен: Цикл не будет бесконечным, так как break прекращает его выполнение.

Пример:

-7

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

Цикл начнет итерации с i = 0. Будут выведены числа 0, 1, 2. Когда i станет равно 3, выполнится break, и цикл завершится, а число 3 выведено не будет.

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

56, Правильный ответ: A

Объяснение:

В Python списки (list) и кортежи (tuple) являются последовательностями, но они отличаются по своей мутабельности (изменяемости).

  • Вариант A верен: Списки являются изменяемыми (mutable), а кортежи — неизменяемыми (immutable).
  • Вариант B не верен: И списки и кортежи могут хранить элементы различных типов.
  • Вариант C не верен: И списки и кортежи можно перебирать.
  • Вариант D не верен: Кортежи обычно быстрее списков для некоторых операций, так как они не могут изменяться, поэтому Python может лучше оптимизировать их использование, но списки не шифруются.

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

  • Списки (list):
    Мутабельность:
    Списки являются изменяемыми, то есть после их создания можно добавлять, удалять или изменять элементы в списке.
    Синтаксис: Списки создаются с использованием квадратных скобок [].
    Применение: Используются для хранения динамических коллекций элементов, где нужно изменять порядок, добавлять или удалять элементы.
  • Кортежи (tuple):
    Неизменяемость:
    Кортежи являются неизменяемыми, то есть после их создания нельзя добавлять, удалять или изменять элементы.
    Синтаксис: Кортежи создаются с использованием круглых скобок ().
    Применение: Используются для представления фиксированных коллекций элементов, где не требуется изменение содержимого (например, координаты, записи). Кортежи могут быть использованы как ключи словаря, чего нельзя сделать со списками.

Пример:

-8

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

  • Списки можно изменять (мутировать) как мы и сделали в примере, добавив и изменив элемент.
  • Кортежи после создания нельзя изменить.

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

57, Правильный ответ: A

Объяснение:

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

  • Вариант A верен: Именно global позволяет функции модифицировать глобальную переменную, объявленную на уровне модуля.
  • Вариант B не верен: Для использования переменной в разных модулях, нужно использовать import.
  • Вариант C не верен: global не защищает от изменения переменной внутри функции, а наоборот, позволяет ее изменять.
  • Вариант D не верен: global объявляет переменную глобальной только внутри функции, а не делает ее автоматически доступной из любой точки кода, в первую очередь используется для изменения переменных, объявленных на уровне модуля.

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

  1. Глобальная область видимости: Переменные, объявленные вне функций, находятся в глобальной области видимости.
  2. Локальная область видимости: По умолчанию, переменные, определенные внутри функции, являются локальными, то есть существуют и доступны только внутри этой функции.
  3. Изменение глобальных переменных: Чтобы изменить глобальную переменную внутри функции, нужно использовать ключевое слово global, чтобы явно указать, что вы работаете с глобальной переменной, а не создаете новую локальную.

Пример:

-9

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

  • Переменная global_var объявляется глобальной на уровне модуля.
  • В функции modify_global() при объявлении global global_var Python понимает, что нужно изменять значение переменной, объявленной на уровне модуля.
  • И значения global_var меняются, что видно при выводе. Таким образом, вариант A является правильным ответом.

58, Правильный ответ: B

Объяснение:

Ключевое слово in в Python используется для проверки наличия элемента в итерируемом объекте (списке, кортеже, строке, словаре и т.д.).

  • Вариант A не верен: in не проверяет наличие файлов.
  • Вариант B верен: Оператор in проверяет, присутствует ли элемент в итерируемом объекте справа от него.
  • Вариант C не верен: Хотя in часто используется в циклах for, это не его единственное применение.
  • Вариант D не верен: Оператор in не изменяет элементы в контейнере.

Как работает оператор in:

  1. in принимает два операнда:
    левый операнд - это элемент, который проверяется на наличие
    правый операнд - это итерируемый объект, в котором выполняется поиск.
  2. Возвращает True, если левый операнд найден в правом, в противном случае возвращает False.
  3. Работает со списками, кортежами, строками, словарями и множествами.
  4. Для словарей проверяет наличие ключа, а не значения.
  5. Для строк проверяет наличие подстроки.

Примеры:

-10

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

  • Оператор in проверяет, есть ли заданный элемент в итерируемом объекте.
  • Для списка проверяется наличие элемента в списке.
  • Для строк проверяется наличие подстроки.
  • Для словарей проверяется наличие ключа, а не значения.

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

59, Правильный ответ: A

Объяснение:

В Python для поиска наибольшего значения в последовательности (например, списке, кортеже, строке, множестве или другом итерируемом объекте) используется встроенная функция max().

  • Вариант A верен: max() возвращает наибольший элемент в итерируемом объекте.
  • Вариант B не верен: sum() возвращает сумму всех элементов.
  • Вариант C не верен: len() возвращает длину (количество элементов) последовательности.
  • Вариант D не верен: high() не является встроенной функцией Python.

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

  1. max() принимает итерируемый объект в качестве аргумента (или несколько аргументов).
  2. Он возвращает наибольший элемент в итерируемом объекте (или наибольшее значение среди переданных аргументов).
  3. Для итерируемых объектов он сравнивает элементы, используя оператор > по умолчанию, но можно передать свою функцию для сравнения.

Пример:

-11

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

  • max(my_numbers) возвращает наибольшее число из списка my_numbers.
  • max(5, 10, 2, 15) возвращает наибольшее из переданных чисел.

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

60, Правильный ответ: C

Объяснение:

Оператор assert в Python - это инструмент для отладки и тестирования, который позволяет проверить истинность определенного условия.

  • Вариант A не верен: assert не используется для определения начального состояния переменных.
  • Вариант B не верен: assert не просто прерывает выполнение, он делает это, если условие ложно и выводит AssertionError.
  • Вариант C верен: assert гарантирует, что условие, которое должно выполняться на определенном этапе, остается верным, и вызывает ошибку если нет.
  • Вариант D не верен: assert не связан с шифрованием данных.

Как работает оператор assert:

  1. assert принимает на вход условие (логическое выражение), которое проверяется на истинность.
  2. Если условие истинно (True), то программа продолжает выполняться в штатном режиме.
  3. Если условие ложно (False), то Python генерирует исключение AssertionError , и выполнение программы останавливается.
  4. Можно передать опциональное сообщение, которое будет выведено вместе с исключением.

Цель использования assert:

  • Отладка: Используется как средство отладки, позволяющее быстро выявить ошибки в логике программы.
  • Тестирование: Помогает гарантировать, что код работает правильно, путем добавления проверок в ключевых местах.
  • Обнаружение ошибок на ранних этапах: Позволяет обнаружить проблемы, связанные с некорректным состоянием данных или логикой работы, на ранних этапах разработки.

Пример:

-12

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

  • В первом вызове, когда скидка находится в допустимом пределе, программа продолжает выполняться нормально.
  • Во втором вызове, discount больше 1, и условие 0 <= discount <= 1 не выполняется, что приводит к выбросу AssertionError.

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

Продолжение следует... Подпишись, чтобы не пропустить.

Удачи!

Предыдущие вопросы из серии Вопросы собеседований python:

101 игра на python. Вопросы собеседований. 1 - 10⁠⁠
101 игра на python7 января 2025
101 python. Вопросы собеседований. 11 - 20
101 игра на python7 января 2025
101 игра на python. Вопросы собеседований. 21 - 30
101 игра на python11 января 2025
101 игра на python. Вопросы собеседований. 31 - 40
101 игра на python13 января 2025
101 игра на python. Вопросы собеседований. 41 - 50
101 игра на python23 января 2025