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

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

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

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

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

*a, b = [1, 2, 3] означает, что последний элемент списка присваивается b, а первые два уходят в *a

При вызове func(*a), переменная a будет распакована в отдельные аргументы функции, таким образом она будет вызвана как func(1, 2)

Внутри функции print(*var) принимает переменное количество аргументов и выводит их значения, разделённые пробелом. Т.е 1 2
Каким будет результат выполнения кода выше?
Anonymous Quiz
39%
()
19%
(None, )
7%
(0, )
34%
Error
Объяснение:

Использование запятой без значений внутри круглых скобок var = (,) не является допустимым синтаксисом в Python

Как минимум, внутри этих скобок должно быть указано хотя бы одно значение, иначе возникает синтаксическая ошибка

Так, если нужно создать кортеж с одним элементом, можно добавить запятую после значения. Например, var = (0,)
Объяснение:

Во всём виновата пустой print() внутри другого print(). Полное объяснение можно найти по ссылке
Каким будет результат выполнения кода выше?
Anonymous Quiz
14%
True
21%
False
8%
Warning
57%
Error
Объяснение:

Результат выполнения кода выше вызывает предупреждение SyntaxWarning, поскольку утверждение (assertion) всегда истинно

Ошибка заключается в использовании скобок. Правильное написание assert выглядит так:

assert num == 25, "Error"
Каким будет результат выполнения кода выше?
Anonymous Quiz
32%
()
25%
[]
14%
[1, 2, 3]
29%
Error
Объяснение:

lst[:] — это срез всего списка lst. И когда мы присваиваем ему это пустой кортеж (tuple), он очищается

Отсюда и ответ — пустой список
Каким будет результат выполнения кода выше?
Anonymous Quiz
49%
{1, 2, 3}
18%
{1, 2, 3, 3}
1%
{1, 2}
33%
Error
Объяснение:

Ошибка будет возникать на этапе выполнения кода

Всё потому что оператор += не поддерживается для множеств (set) в Python. Если попытаться выполнить данный код, то вылетит ошибка TypeError

Вместо этого, для объединения множеств, можно использовать метод union() или оператор объединения |
Каким будет результат выполнения кода выше?
Anonymous Quiz
28%
b'Ща что-то будет'
35%
b'???????????????'
3%
b''
34%
Error
Объяснение:

Код выше пытается закодировать строку "Ща что-то будет" с помощью кодировки ASCII

Но данная кодировка поддерживает лишь символы в диапазоне от 0 до 127 и не может представить кириллические символы

Отсюда и ошибка