Python: задачки и вопросы
7.7K subscribers
1.2K photos
2 videos
1 file
99 links
Вопросы и задачки для подготовки к собеседованиям и прокачки навыков

Разместить рекламу: @tproger_sales_bot

Правила общения: https://tprg.ru/rules

Другие каналы: @tproger_channels

Другие наши проекты: https://tprg.ru/media
Download Telegram
Какой метод вызывается при использовании оператора in для проверки наличия элемента в пользовательском классе?
Anonymous Quiz
55%
__contains__
18%
__hasitem__
12%
__iter__
16%
__getitem__
Объяснение:

Метод __contains__ вызывается при использовании оператора in

Если этот метод не определён, Python пытается использовать метод __iter__ или __getitem__ для реализации проверки на наличие элемента.
Какое исключение будет выброшено, если попытаться изменить кортеж после его создания?
Anonymous Quiz
18%
ValueError
52%
TypeError
20%
AttributeError
10%
IndexError
Объяснение:

Кортежи в Python являются неизменяемыми и любая попытка изменить их после создания приведёт к выбросу исключения TypeError
Объяснение:

GIL (Global Interpreter Lock) — это механизм, который не позволяет более чем одному потоку одновременно выполнять нативный код Python

Это создаёт проблемы с производительностью в многопоточных программах, так как потоки не могут выполняться параллельно на разных ядрах процессора
Какая функция позволяет выполнять код в отдельном потоке?
Anonymous Quiz
70%
threading.Thread
6%
os.spawn
6%
concurrent.futures.ProcessPoolExecutor
Объяснение:

В модуле threading предоставляется класс Thread, который позволяет создавать и запускать новые потоки выполнения

Он принимает в качестве аргумента функцию, которая будет выполняться в новом потоке
Каким будет результат выполнения кода выше?
Anonymous Quiz
5%
3
3%
5
64%
8
28%
Error
Объяснение:

Здесь мы столкнулись с замыканием

Функция outer_function() принимает аргумент x, определяет внутри себя функцию inner_function(), которая использует x, а затем возвращает эту внутреннюю функцию

В результате, когда вызываем func(3), она вызывает inner_function() с аргументом y = 3 и возвращает сумму x + y, т.е 8
Каким будет результат выполнения кода выше?
Anonymous Quiz
7%
[1, 3, 5]
86%
[2, 4]
4%
[1, 2, 3, 4, 5]
3%
[]
Объяснение:

Функция filter() применяет функцию-предикат (в данном случае, лямбда-функцию) к каждому элементу итерируемого объекта и возвращает новый итератор, содержащий только те элементы, для которых предикат вернул True

В данном случае предикат проверяет, является ли элемент чётным числом (x % 2 == 0). После применения filter() к списку lst, мы получаем новый список, содержащий только чётные числа: [2, 4]
Какая функция возвращает True, если все элементы итерируемого объекта равны True?
Anonymous Quiz
78%
all()
10%
any()
5%
sum()
7%
filter()
Объяснение:

Функция all() принимает итерируемый объект в качестве аргумента и возвращает True, если все его элементы равны True (или, по крайней мере, истинны), и False в противном случае
Каким будет результат выполнения кода выше?
Anonymous Quiz
73%
True True
12%
False True
5%
False False
10%
Error
Объяснение:

Во втором вызове функции печати print(var_one == not var_two) возникнет синтаксическая ошибка из-за порядка выполнения операций

В Python оператор not не может быть использоваться с оператором == в таком виде, как это представлено здесь

Чтобы сравнение прошло нормально, надо исправить второй print() на print(var_one == (not var_two))