Функция выводит False: large_num — int, а pair — одноэлементный tuple. Запятая в (large_num,) определяет создание кортежа.
Проверка типа значения через кортежный литерал
Функция выводит False: large_num — int, а pair — одноэлементный tuple. Запятая в (large_num,) определяет создание кортежа.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Разберите, что делает функция print_type, насколько корректна запись, какие типы данных формируются, и какой вывод появится при её запуске.
def print_type():
large_num = 1_999_333
pair = (large_num,)
print(isinstance(pair, int))
if __name__ == "__main__":
print_type()
Ответ
Функция выводит False: large_num — int, а pair — одноэлементный tuple. Запятая в (large_num,) определяет создание кортежа.
Число 1_999_333 эквивалентно 1999333: подчёркивания служат разделителями для читаемости. Выражение (large_num,) оборачивает число в кортеж, поэтому проверка самого контейнера как int ложна.
isinstance(pair, tuple) # True
isinstance(pair[0], int) # True
Если убрать запятую и оставить (large_num), получится просто число и исходная проверка вернёт True. Условие if __name__ == '__main__' вызывает функцию при непосредственном запуске файла, но не при обычном импорте. Код синтаксически корректен и исключения в показанном сценарии не вызывает.