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

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

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

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

Другие наши проекты: https://tprg.ru/media
Download Telegram
Каким будет результат выполнения кода выше?
Anonymous Quiz
28%
[1]
34%
[1, 1]
31%
[1, 1, 1]
7%
Error
Объяснение:

В Python аргументы функций по умолчанию инициализируются только один раз при определении функции

Здесь аргумент itm инициализируется как пустой список [] при первом вызове функции. Поскольку списки являются изменяемыми объектами, каждый вызов hmm() без аргументов приводит к добавлению числа 1 в этот же список

Поэтому после двух вызовов hmm() в цикле for, список содержит два элемента [1, 1]. При третьем вызове hmm() в список добавляется еще одна 1, что приводит к результату [1, 1, 1]
Каким будет результат выполнения кода выше?
Anonymous Quiz
1%
()
61%
Шла
20%
("Шла", "Саша", "по Шоссе")
18%
Error
Объяснение:

Ответ будет "Шла". В данном примере tup = "Шла", "Саша", "по Шоссе" создает кортеж (tuple) из трех элементов

Когда эти элементы распаковываются в переменные var1, var2, var3, каждой переменной присваивается соответствующий элемент кортежа

var1 получает первый элемент кортежа, который является строкой "Шла". Поэтому при выводе print(var1), отображается значение "Шла"
Каким будет результат выполнения кода выше?
Anonymous Quiz
13%
1
24%
2
50%
True
13%
False
Объяснение:

Логический оператор and возвращает первый операнд, если он ложен (в контексте булевой логики), или второй операнд, если первый истинен

В данном случае, поскольку var1 (который равен 1) является истинным значением (любое ненулевое число в Python считается истинным), результатом выражения var1 and var2 будет значение var2, которое равно 2
Каким будет результат выполнения кода выше?
Anonymous Quiz
4%
[0, 1, 2, [3], 4, 5]
60%
[0, 1, 2, 3, 4, 5]
34%
[0, 1, 2, 3, [4, 5]]
2%
[0, 1, 2, [3], [4, 5]]
Объяснение:

Здесь мы создаем список lst, который изначально содержит элементы [0, 1, 2]

Затем метод .append(3) добавляет число 3 в конец списка, делая его [0, 1, 2, 3]

После этого метод .extend([4, 5]) расширяет список lst, добавляя элементы списка [4, 5] в его конец. Это приводит к окончательному списку [0, 1, 2, 3, 4, 5]
Каким будет результат выполнения кода выше?
Anonymous Quiz
25%
1234567
22%
**1234567
20%
1234567**
32%
*1234567*
Объяснение:

В данном форматировании строки с помощью метода .format(), {0:*^9} определяет формат вывода

0 указывает на индекс аргумента, который будет подставлен (1234567), * является символом, используемым для заполнения дополнительного пространства, ^ указывает на центрирование значения, а 9 определяет общую ширину поля

Поскольку число 1234567 состоит из 7 цифр и общая ширина поля установлена равной 9, с каждой стороны числа добавляется по одному символу * для достижения общей ширины в 9 символов, в результате чего получается *1234567*
Каким будет результат выполнения кода выше?
Anonymous Quiz
8%
0
22%
new
36%
old
33%
Error
Объяснение:

Злесь создается экземпляр класса Empty, который сохраняется в переменной obj

В Python, экземпляры пользовательских классов по умолчанию всегда считаются истинными (то есть bool(obj) возвращает True), если только в классе не определен специальный метод, который изменяет это поведение

В списке ['new', 'old'] значение по индексу 0 - это new, соответствующее False, а значение по индексу 1 - это old, соответствующее True

Так как bool(obj) возвращает True, выбирается элемент с индексом 1, то есть old
Каким будет результат выполнения кода выше?
Anonymous Quiz
13%
200023
4%
2023
5%
[2000, '23']
78%
Error