Программа выведет False. Из-за завершающей запятой data — кортеж из одного целого числа, а не само целое число. Подчёркивания в числовом литерале на тип не влияют.
Что выведет программа при проверке типа переменной?
Программа выведет False. Из-за завершающей запятой data — кортеж из одного целого числа, а не само целое число. Подчёркивания в числовом литерале на тип не влияют.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Определите вывод данного фрагмента кода и объясните, почему он такой. Пример кода, проверяющего тип значения.
data = (1_000_000,)
print(isinstance(data, int))
Ответ
Программа выведет False. Из-за завершающей запятой data — кортеж из одного целого числа, а не само целое число. Подчёркивания в числовом литерале на тип не влияют.
Выражение (1_000_000,) создаёт tuple. Скобки группируют выражение, но именно запятая делает его одноэлементным кортежем.
print(type(data)) # <class 'tuple'>
print(isinstance(data, int)) # False
print(isinstance(data[0], int)) # True
Без запятой data = (1_000_000) было бы обычным целым числом. Подчёркивания нужны только для читаемости записи: 1_000_000 и 1000000 обозначают одно значение.