Что делает этот фрагмент с array в Python
@python_quizРазберем этот квиз
Короткий заголовок: Работа с модулем array — индексация, длина и сложение
Исходный код:

Коротко: программа выводит целое число 4. Ниже подробно объясню почему и разберу возможные заблуждения.
Разбор по шагам
- from array import array
- подключает тип из стандартного модуля array, который хранит однородные C-подобные массивы (здесь тип элементов 'i' — целые).
nums = array('i', [1, 2, 3])
- создаёт массив целых чисел с тремя элементами: 1, 2, 3.
- nums[0]
- обращение по индексу возвращает элемент типа int со значением 1.
- len(nums)
- возвращает длину последовательности, то есть целое число 3.
- nums[0] + len(nums)
- складываются два int: 1 + 3 = 4.
- print(...) выводит 4.
Демонстрация промежуточных значений
Чтобы понять поведение, полезно вывести промежуточные значения:

Ожидаемый вывод в интерактивной сессии:

Обратите внимание: print(nums) не выводит просто [1, 2, 3], а формирует строку вида array('i', [1, 2, 3]) — это отличает array от списков.
Анализ возможных вариантов мышления
- "Выведет [1, 2, 3]": путаница с list. Если бы код был print(nums), вы увидели бы строковое представление array, но не ровно [1, 2, 3]. Здесь же печатается результат выражения nums[0] + len(nums), то есть число.
- "Выведет 4": соответствует анализу — nums[0] это 1, len(nums) это 3, их сумма 4.
- "Выведет 3": могло бы показаться, если перепутать выражение (например, думать, что печатается len или что индекс начинается с 1). Но фактически nums[0] даёт 1, не 0.
- "Ошибка типов при сложении": возможное заблуждение если считать, что элементы array не являются int или что len возвращает что-то иное. В Python элементы array возвращаются как int и суммируются с int без ошибок.
Заключение
Модуль array предоставляет компактные, одномерные массивы однородных данных. Индексация возвращает обычные Python-типовые значения (для 'i' — int), len возвращает int, поэтому арифметические операции между ними выполняются нормально. В данном фрагменте программа выводит число 4.