Вы пытаетесь проиндексировать массив по значению элемента. Внимательно посмотрите на свое выражение:
for i in a:
Здесь на каждой итерации l oop, i
- это просто каждый элемент массива a
, а не индекс. Это потому, что a
- это iterable
, то есть «объект, способный возвращать свои члены по одному за раз». См. здесь для определения и объяснения.
Следовательно, когда вы просите a[i]
, угадайте, что происходит? Первый элемент - 2.0
, это число с плавающей запятой. Вы пытаетесь выполнить a[2.0]
, что запрещено во всех известных языках программирования. Как сообщается в сообщении об ошибке, числа с плавающей запятой не входят в число допустимых типов для индекса.
Вы должны просто выполнить if i < 1
et c., Чтобы ваши условия работали должным образом.