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

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

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

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

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

Списки в Python динамические, что означает, что они могут изменяться после создания, например, вы можете добавить или удалить элементы. Эта гибкость требует дополнительной памяти для хранения ссылок на объекты, а также дополнительной информации, необходимой для управления списком

С другой стороны, кортежи в Python статические и неизменяемые, что означает, что после создания вы не можете изменить их. Это делает кортежи более эффективными с точки зрения использования памяти, поскольку они не требуют дополнительного пространства для управления изменениями

Поэтому, когда мы печатаем размеры lst и tup, то видим, что tup.__sizeof__() возвращает меньшее значение по сравнению с lst.__sizeof__()
Каким будет результат выполнения кода выше?
Anonymous Quiz
11%
[1, 2, 3, 4]
6%
[1, 2, 3]
74%
[2, 3, 4]
10%
Error
Объяснение:

Здесь lst2 не является новым списком; это просто другая ссылка на тот же самый список, на который ссылается lst1. А это значит, что обе переменные lst1 и lst2 указывают на один и тот же объект в памяти

Когда вызывается метод lst1.pop(0), первый элемент списка удаляется, и теперь список выглядит как [2, 3]

Затем, когда вызывается метод lst2.append(4), в список добавляется элемент 4, и теперь список выглядит как [2, 3, 4]

Поскольку, напомним, lst1 и lst2 указывают на один и тот же список, любые изменения, внесённые через одну из переменных, отражаются в другой переменной

Поэтому мы и получаем [2, 3, 4] при печати lst1
Каким будет результат выполнения кода выше?
Anonymous Quiz
58%
0
26%
1
4%
2
12%
Error
Объяснение:

Функция round() в Python округляет число до ближайшего чётного числа, если дробная часть числа равна 0.5

Это называется «округлением к ближайшему чётному» и помогает уменьшить ошибки округления при обработке большого количества данных

Таким образом, round(11.5) вернёт 12 и round(12.5) вернёт 12

А 12 - 12 = 0
Объяснение:

Третий способ создаёт множество. Остальные варианты — словари
Каким будет результат выполнения кода выше?
Anonymous Quiz
1%
0
24%
5
73%
5.0
2%
Error
Объяснение:

Операция деления (/) в Python возвращает результат в виде числа с плавающей точкой (float), даже если оба числа являются целыми и деление происходит нацело

Если бы в коде использовалось целочисленное деление (//), результат был бы 5
Каким будет результат выполнения кода выше?
Anonymous Quiz
23%
1
69%
2
2%
3
6%
Error
Объяснение:

В данном примере, несмотря на то, что в блоке try есть инструкция return 1, блок finally будет выполнен в любом случае после выполнения блока try

Поскольку в блоке finally также есть инструкция return 2, это значение будет возвращено функцией func, переопределяя предыдущее значение 1
Каким будет результат выполнения кода выше?
Anonymous Quiz
8%
0 2 4 0 0 0 0 -2 4
3%
0 2 4 0 0 0
54%
0 1 2 0 1 2
35%
Error
Объяснение:

- в
первой строке str_ умножается на 2, что приводит к повторению строки str_ два раза: '0 1 2 0 1 2 '
- во второй строке str_ умножается на 0, что приводит к пустой строке '', поскольку любая строка, умноженная на 0, дает пустую строку
- в третьей строке str_ умножается на -2. Отрицательное число в качестве множителя также дает пустую строку

Отсюда и ответ 0 1 2 0 1 2
Каким будет результат выполнения кода выше?
Anonymous Quiz
37%
0 1 2
42%
0 1 1
11%
0 0 1
10%
0 2 1