Python задачи и вопросы
1.28K subscribers
411 photos
1 file
166 links
Задачи и вопросы с собеседований по python разного уровня сложности

По рекламе: @cyberJohnny
Download Telegram
Что представляют собой генераторы в Python, как функционирует метод send() в этих генераторах и каким образом его можно применять для управления их поведением?

Генераторы в Python представляют собой функции, которые применяют оператор yield для возврата значений и временной приостановки выполнения. С помощью метода send() можно отправлять данные обратно в генератор, которые затем могут быть использованы при следующем возобновлении его работы. Это делает генераторы двусторонними, позволяя не только получать значения, но и передавать данные внутрь.
В каких ситуациях возникает исключение NotImplementedError?

Исключение NotImplementedError возникает, когда метод или функция должны быть реализованы в подклассе, но не были реализованы. Это может произойти, когда родительский класс определяет метод, но не реализует его сам, а оставляет это для подклассов. В этом случае, если подкласс не реализует метод, он будет вызывать исключение NotImplementedError. Это может быть полезно для отладки, чтобы убедиться, что все необходимые методы реализованы в подклассах. Это также может возникнуть в других ситуациях, например, если вы пытаетесь использовать неопределенную функцию или метод.
Каким будет результат следующего выражения: -31 % 10?

Результатом выражения -31 % 10 будет 9. Это происходит потому, что для отрицательных чисел оператор % возвращает остаток от деления первого числа на второе немного другим образом. -31 % 10 = -3 — 1/10 и в ответ мы получим 10 — 1 = 9.
Зачем нужен wraps?

Декоратор functools.wraps используется для того, чтобы сохранить информацию о функции-оригинале при создании декоратора.
Когда мы создаем декоратор, он заменяет оригинальную функцию на обернутую. При этом теряется информация о названии функции, docstring и другие атрибуты.

Используя wraps, мы можем сохранить эти атрибуты. Таким образом декорированная функция будет выглядеть как оригинальная для программиста.

Это полезно для отладки и понимания кода. Например, при просмотре стека вызовов будет видно оригинальное имя функции, а не имя декоратора. При использовании help() будет выведен нужный docstring.
Что выведет код сверху?

👾 — False, False
👍 — True, False
🥰 — False, True
⚡️ — True, True

Библиотека задач по Python
🎉2
Кто разработал язык программирования Python?
Anonymous Poll
5%
Вик ван Россум
16%
Расмус Лердорф
81%
Гвидо ван Россум
0%
Ниене Стом
Какой тип наследования проиллюстрирован в следующем коде на Python?
class A():
pass
class B():
pass
class C(A,B):
pass

👾 — Многоуровневое наследование
👍 — Множественное наследование
🥰 — Иерархическое наследование
⚡️ — Одноуровневое наследование

🐸Библиотека задач по C#
👍2
Что из перечисленного не является типом наследования?

👾 — Двухуровневый
👍 — Многоуровневый
🥰 — Одноуровневый
⚡️ — Многоуровневый
Библиотека задач по Python
Как работает хэш-таблица?

Хэш-таблица в Python реализована в виде словаря (dict). Вот как это работает:

— Хэширование ключей: Когда вы добавляете пару ключ-значение в словарь, Python сначала вычисляет хэш-код ключа с помощью встроенной функции hash(). Хэш-код — это целое число, представляющее «отпечаток» ключа.

— Разрешение коллизий: Если два разных ключа имеют одинаковый хэш-код (коллизия), Python использует механизм разрешения коллизий для размещения значений в памяти. Одним из наиболее распространенных методов разрешения коллизий является метод цепочек, когда для каждого «ячейки» хэш-таблицы выделен список, в который добавляются все значения с одинаковыми хэш-кодами.

— Поиск значения: При поиске значения по ключу Python сначала вычисляет хэш-код ключа и затем использует его для определения соответствующей «ячейки» в хэш-таблице. Затем происходит поиск значения внутри этой «ячейки» (или цепочки).
Библиотека задач по Python
Какой будет вывод следующего кода Python?

👾 — Ошибка, так как класс B наследует A, но переменная x не наследуется
👍 — 0 0
🥰 — 0 1
⚡️ — Ошибка, синтаксис вызывающего метода неверен
Библиотека задач по Python
Какой будет вывод следующего кода Python?

👾 — False
👍 — True
🥰 — Error
⚡️ — None
<br> (https://t.iss.one/csharp_problems_lib)Библиотека задач по Python
👍1
Что выведет код сверху?

👾 — 2
👍 — 3
🥰 — 4
⚡️ — Error
<br> (https://t.iss.one/csharp_problems_lib)Библиотека задач по Python
Метод getitem

Метод getitem является частью протокола индексации, который позволяет объекту быть индексируемым, как это делается, например, для списков или словарей. Этот метод вызывается при использовании квадратных скобок [] для доступа к элементам объекта.

Этот метод также используется при работе с срезами. Если вы хотите, чтобы ваш объект поддерживал срезы, вы также можете реализовать метод getitem с тремя аргументами: self, start, stop.

Библиотека задач по Python
Что делает функция random.choice()?

Функция random.choice() модуля random возвращает один случайный элемент из непустой последовательности.

Последовательность может быть неизменяемой (например кортеж) или изменяемой (список). Функция random.choice() поддерживает диапазоны range().

Если последовательность пуста, то поднимается исключение
IndexError.

Библиотека задач по Python
Что выведет код сверху?

👾 — 5
👍 — 10
🥰 — 0
⚡️ — Error
<br> (https://t.iss.one/csharp_problems_lib)Библиотека задач по Python
Предположим, что B является подклассом A. Чтобы вызвать метод init в A из B, какую строку кода следует написать?

👾 — A.init(self)
👍 — B.init(self)
🥰 — A.init(B)
⚡️ — B.init(A)

Библиотека задач по Python
Какое из следующих утверждений верно?

👾 — Неприватный метод в суперклассе может быть переопределен
👍 — Метод подкласса может быть переопределен суперклассом
🥰 — Приватный метод в суперклассе может быть переопределен
⚡️ — Переопределение невозможно в Python

Библиотека задач по Python
Какое из следующих утверждений верно?

👾 — Ошибка, синтаксис вызывающего метода неверен
👍 — Программа работает нормально, но ничего не печатается
🥰 — 1 0
⚡️ — 1 2

Библиотека задач по Python
Что выведет код?

👾 — True
👍 — False
🥰 — None
⚡️ — Error

Библиотека задач по Python
👍1
Что выведет код?

👾 — {}
👍 — {0: 0, 5: 10, 10: 15, 15:30}
🥰 — {0: 10, 5: 20}
⚡️ — {0: 0, 5: 5, 10: 10, 15:15}

Библиотека задач по Python