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

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

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

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

Другие наши проекты: https://tprg.ru/media
Download Telegram
Объяснение:

Здесь перед нами так называемая одна из распространённых «ловушек» в Python. Связана она с изменяемыми значениями по умолчанию для аргументов функции

Когда мы определяем функцию func(x=[]), значение по умолчанию для x — это пустой список []

Однако этот список создаётся один раз при определении функции и затем «запоминается» между вызовами функции. Это означает, что если мы изменим этот список внутри функции (как это делается с помощью x.append(1)), эти изменения также сохранятся между вызовами

По итогу сначала будет выведено [1], а затем [1, 1]
Каким будет результат выполнения кода выше?
Anonymous Quiz
17%
0
73%
1
7%
2
4%
Error
Объяснение:

Оператор // выполняет целочисленное деление

Поэтому 10 // 5 равно 2, и 2 // 2 равно 1
Каким будет результат выполнения кода выше?
Anonymous Quiz
5%
0
5%
3
84%
10
6%
Error
Объяснение:

Функция является рекурсивной и будет вызываться до тех пор, пока x не станет 0

В конечном итоге она вернёт 10
Каким будет результат выполнения кода выше?
Anonymous Quiz
66%
30
14%
25
4%
14
17%
Error
Объяснение:

В списке x числа от 0 до 4

Список y содержит квадраты этих чисел: [0, 1, 4, 9, 16]

Сумма этих квадратов равна 0 + 1 + 4 + 9 + 16 = 30
Каким будет результат выполнения кода выше?
Anonymous Quiz
8%
0
81%
1
6%
ZeroDivisionError
5%
SyntaxError
Объяснение:

Блок finally будет выполнен в любом случае, даже если перед этим был вызван return или возникло исключение

Отюсда и z, который станет равным 1
Каким будет результат выполнения кода выше?
Anonymous Quiz
69%
0
25%
10
3%
None
3%
Error
Объяснение:

Срез y = x[::2] создаёт новый список, не связанный с оригинальным. А потому изменение y не влияет на x
Каким будет результат выполнения кода выше?
Anonymous Quiz
59%
[1, 2, 3]
17%
[None, None, None]
9%
None
15%
Error
Объяснение:

В Python, lambda создаёт анонимную функцию, а yield from используется для делегирования части операций генератора другому генератору или итерируемому объекту

В данном случае, x — это функция-генератор, которая при вызове x() возвращает другой генератор

Этот вложенный генератор проходит через все элементы списка [1, 2, 3] и выдаёт их по одному

В свою очередь функция list() собирает эти значения в список, который и выводится на экран: [1, 2, 3]