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

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

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

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

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

Оператор walrus или как его ещё называют моржовый оператор (:=), позволяет присвоить значение переменной внутри выражения. В данном случае, выражение внутри скобок присваивает список [1, 2, 3] переменной x.

Метод extend добавляет все элементы из переданного списка в конец исходного списка. Таким образом, исходный список [1, 2, 3] удваивается, и получается [1, 2, 3, 1, 2, 3]

Важно:
Синтаксис (x := [1, 2, 3]).extend(x) является допустимым, но не рекомендуемым согласно PEP 572 – Assignment Expressions, так как он может быть неинтуитивным и сложным для понимания.

В комментариях можете поделиться своими вариантами написания данного кода, чтобы он был более понятным
Каким будет результат выполнения кода выше?
Anonymous Quiz
7%
0
6%
2
80%
8
7%
9
Объяснение:

Здесь мы создаём список из чётных чисел от 0 до 8 при помощи генератора списка и условия if i % 2 == 0

Затем извлекается последний элемент из данного списка и его значение присваивается переменной res. Т.к. последний элемент списка — число 8, то и результатом выполнения этого кода будет число 8
Объяснение:

Функция enumerate() в Python — это эффективный инструмент для циклов, создающий пары, состоящие из счётчика и элементов итерируемого объекта. Эти пары упакованы в кортежи.

Пример:
for i, v in enumerate(['a', 'b', 'c']):
print(i, v)
Код выше выведет:
0 a
1 b
2 c


С помощью enumerate() можно начинать отсчёт с любого числа, поэтому в какой то мере последний ответ тоже являлся правильным. Достаточно передать вторым аргументом нужное вам число для начала отсчёта.

Пример:
for i, v in enumerate(['a', 'b', 'c'], start=1):
print(i, v)

Код выше выведет:
1 a
2 b
3 c
Каким будет результат выполнения кода выше?
Anonymous Quiz
1%
{}
9%
Syntax Error
84%
{0: 'a', 1: 'b', 2: 'c', 3: 'd', 4: 'e'}
5%
Ничего из вышеперечисленного
Объяснение:

Функцию enumerate() мы обсудили вчера, поэтому с пониманием ее работы не должно возникнуть вопросов.

Касаемо самой викторины — код использует функцию enumerate() и конструкцию dict comprehension, которые в купе возвращают словарь, где ключами являются индексы символов, а значениями — сами символы. Поэтому правильный ответ: {0: 'a', 1: 'b', 2: 'c', 3: 'd', 4: 'e'}.
Каким будет результат выполнения кода выше?
Anonymous Quiz
48%
True
43%
False
3%
None
5%
Error
Объяснение:

Тут важно понимать, что список, это изменяемый тип данных и q передается в функцию foo по ссылке, а не по значению. Это значит, что любые изменения, сделанные внутри функции также повлияют на q. Тем не менее, сам объект q не изменяет своего местоположения в памяти (его ID остаётся тем же).

Для более глубокого изучения темы:
— Передача аргументов по ссылке и по значению в Python
— Переменные-ссылки в Python

— Понимание переменных Python и управления памятью
Каким будет результат выполнения кода выше?
Anonymous Quiz
18%
(30, 24, 21, 134, 24, 12)
6%
(30, 24, 73, 134, 21, 12)
2%
(30, 24, 134, 24, 12)
75%
Error
Объяснение:

Конечно же правильный ответ Error, кортежи неизменяемы, поэтому мы не можем изменять отдельные элементы после создания.
Каким будет результат выполнения кода выше?
Anonymous Quiz
4%
4
69%
5
25%
6
2%
2
Объяснение:

Правильный ответ 5, потому что новый список будет добавлен, как вложенный и будет рассматриваться как отдельный объект. А количество элементов внутри вложенного списка не влияет на общую длину основного.

Работает это таким образом — [элемент 1, элемент 2, элемент 3, элемент 4, [элемент 5]]