Манипуляции с кортежами и проверка типов

Вывод — False. number является int, но tup — кортеж из одного элемента, поэтому проверка tup на int не проходит.

Короткий ответ

Что ответить на собеседовании

Вывод — False. number является int, но tup — кортеж из одного элемента, поэтому проверка tup на int не проходит.

Подробный разбор

Ответ с пояснениями

Условие

Объясните, что происходит в программе: какие значения присваиваются переменным, как формируется кортеж и какой результат вернёт проверка isinstance.

def getValue():
    number = 1_999_333
    tup = (number,)
    print(isinstance(tup, int))

if __name__ == "__main__":
    getValue()
  • Переменная number получает целочисленное значение 1999333 (подчеркивания лишь для читаемости).
  • tup создаётся как кортеж, содержащий единственный элемент — значение number. Запись (number,) обязательна, иначе скобки воспринимаются как обычные скобки вокруг выражения.
  • Функция isinstance(tup, int) проверяет, является ли объект tup экземпляром класса int. Поскольку tup — кортеж, а не целое число, проверка возвращает False, и именно это значение выводится на экран.

Ответ

Вывод — False. number является int, но tup — кортеж из одного элемента, поэтому проверка tup на int не проходит.

number = 1_999_333
tup = (number,)

assert type(number) is int
assert type(tup) is tuple
assert isinstance(tup[0], int)

Кортеж создаёт запятая, а не сами скобки. Запись tup = (number) сохранила бы число без контейнера. Подчёркивания внутри числового литерала не меняют его значение.

При непосредственном запуске файла условие __name__ == '__main__' истинно, поэтому вызывается функция и печатается False. При обычном импорте определение функции загружается, но этот вызов не выполняется.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее