Python: задачки и вопросы
7.73K subscribers
1.19K photos
1 video
1 file
91 links
Вопросы и задачки для подготовки к собеседованиям и прокачки навыков

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

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

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

Другие наши проекты: https://tprg.ru/media
Download Telegram
Каким будет результат выполнения кода выше?
Anonymous Quiz
9%
Hi {name}!
36%
NameError
30%
TypeError
25%
UnboundLocalError
Объяснение:

Когда вы запускаете код, вы получите ошибку TypeError. Если быть точнее, вы увидите что-то следующее:
builtins.TypeError: greetings() missing 1 required positional argument: 'name'


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

Один из способов исправить этот момент — добавить аргумент в вызов функции greetings(). И всё же лучше избегать создания двух функций с одинаковыми именами.
Каким будет результат выполнения кода выше?
Anonymous Quiz
56%
42
17%
9%
None
18%
Error
Объяснение:

Функция func() устанавливает значение атрибута ecole равным 42 и затем возвращает саму себя (функцию func)

Затем в строке print(func().ecole) происходит вызов функции func() и получение её атрибута ecole

Достигается это за счёт атрибута __dict__
Каким будет результат выполнения кода выше?
Anonymous Quiz
4%
e
33%
l
3%
None
61%
Error
Объяснение:

В данном случае i равняется не 2, как могло бы показаться, а 2.0. Деление без остатка в Python выполняется с помощью //, а не /

По итогу в print() мы получаем не str_[2], а str_[2.0], что является ошибкой — индексом можем выступать лишь целочисленное значение
Каким будет результат выполнения кода выше?
Anonymous Quiz
62%
10
20%
0
15%
SyntaxError
4%
RuntimeError
Объяснение:

Несмотря на то, что значение None в Python указывает на отсутствие значения, код l = [None] * 10 создает список l, состоящий из 10 элементов, каждый из которых равен None. Функция len(l) возвращает длину списка, то есть количество элементов в этом списке. В данном случае, список содержит 10 элементов, поэтому результатом выполнения будет число 10.
Выберите правильный вариант для объединения двух списков
Anonymous Quiz
7%
newList = extend(listOne, listTwo)
35%
newList = listOne.extend(listTwo)
49%
newList = listOne + listTwo
10%
newList.extend(listOne, listTwo)
Объяснение:

newList = listOne + listTwo: Это правильный способ объединения двух списков. Он создает новый список newList, который состоит из элементов listOne, за которыми следуют элементы listTwo.

Все остальные варинты с методом extend были некорректны и не вернули бы нам нужного результата.
Каким будет результат выполнения кода выше?
Anonymous Quiz
3%
var_one, var_two
33%
Error
3%
12
1%
13
60%
(12, 13)
Объяснение:

В Python можно указать несколько присваиваний в одной строке кода:
var_one, var_two = 12, 13

Но в нашем случае код немного другой. Здесь используется упаковка кортежа. В строке:
var = var_one, var_two = 12, 13

происходит следующее: наружная часть var = ... присваивает переменной var кортеж (12, 13), который формируется из значений, присвоенных переменным var_one и var_two.
Каким будет результат выполнения кода выше?
Anonymous Quiz
10%
{5, 6, 3, 4, 5}
33%
TypeError: unhashable type: 'list'
52%
{3, 4, 5, 6}
6%
{3, 4, 5, 5, 6}