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

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

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

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

Другие наши проекты: https://tprg.ru/media
Download Telegram
Каким будет результат выполнения кода выше?
Anonymous Quiz
53%
True
33%
False
7%
None
7%
Error
Объяснение:

Ответ True связан с наследованием иерархии классов в языке Python. Всё дело в том, что bool — это подкласс класса int

Это означает, что bool наследует некоторые методы и атрибуты от int

Функция issubclass() же, в свою очередь, возвращает True, если первый аргумент является подклассом второго аргумента и False в противном случае
Каким будет результат выполнения кода выше?
Anonymous Quiz
35%
True
57%
False
3%
None
5%
Error
Объяснение:

type({}) возвращает тип данных dict, а type({1}) — set
Каким будет результат выполнения кода выше?
Anonymous Quiz
12%
1 2 3 4 5
11%
1 2 3 {'x': 4, 'y': 5}
59%
1 (2, 3) {'x': 4, 'y': 5}
18%
Error
Объяснение:

В func() аргумент a принимает первое значение переданное в функцию, *b собирает все позиционные аргументы, идущие после a, в кортеж, а **c собирает все именованные аргументы в словарь
Каким будет результат выполнения кода выше?
Anonymous Quiz
51%
True
46%
False
2%
None
1%
Error
Объяснение:

Оператор is в Python проверяет, указывают ли две переменные на один и тот же объект в памяти

В данном случае, [1, 2, 3] создаёт новый список в памяти. И при каждом вызове [1, 2, 3] будет создаваться новый объект списка

Таким образом, две ссылки на [1, 2, 3] в коде указывают на разные объекты в памяти, даже если содержание этих объектов идентично

Отсюда и ответ — False
Каким будет результат выполнения кода выше?
Anonymous Quiz
30%
True, True
61%
True, False
4%
False, True
4%
False, False
Объяснение:

Кортежи a и b содержат одинаковые значения — (1, 2, 3). Поэтому сравнение a == b вернёт True, т.к оно сравнивает содержимое кортежей

Но оператор is, в свою очередь, проверяет идентичность объектов, а не только их содержимое. Даже если значения элементов кортежей a и b идентичны, они всё равно указывают на разные объекты в памяти. Поэтому a is b вернёт False
Каким будет результат выполнения кода выше?
Anonymous Quiz
61%
python 🐍
7%
snake 🐍
24%
snake \Nsnake
9%
Error
Объяснение:

В данном коде используется форматирование через f-строку, где переменная snake равна строке python

При этом внутри функции print() есть специальная последовательность \N{snake}, которая представляет символ Unicode, обозначающий змею

Таким образом, строка будет отформатирована как python 🐍 и именно в таком виде выведена на экран
Каким будет результат выполнения кода выше?
Anonymous Quiz
34%
True True
24%
True False
6%
False True
36%
False False
Объяснение:

В Python есть «пул чисел», который кэширует и переиспользует некоторые неизменяемые объекты, такие как небольшие целые числа и строки

В случае с a = pow(1, 2), интерпретатор знает, что 1 и 2 — это небольшие целые числа и он использует уже существующий объект в пуле чисел для представления этих значений

Однако в случае с b = pow(10, 5), числа 10 и 5 слишком большие для кэширования. Поэтому каждый вызов pow(10, 5) создаёт новый объект. В результате b is pow(10, 5) возвращает False