Python

Где ошибка в коде? (Python)

Все тот же выход за пределы списка i + 1 в цикле до len(a)
Анар А
Анар А
34 940
Лучший ответ
Алексей Комаров в этом случае приписка len(a)-1 не помогает - код не выполняет свою функцию
Код нужно вдумчиво писать, а не просто пробовать len и len-1 потому что так все пишут.
Индексы массивов начинаются с 0. Т.е. первый элемент имеет индекс 0, второй 1 и т.д.
Функция len возвращает количество элементов массива. Следовательно индекс последнего элемента это len(a)-1
Обращение к элементу массива производится по его индексу.
Функция range(start,stop) создает последовательность чисел от start включительно до stop не включительно.
 for i in range(0,len(a)) 
переберет все индексы.
 for i in range(1,len(a)) 
переберет все индексы кроме 0. (т.е. без первого элемента)

В цикле ты получаешь элементы a[i] и a[i+1]. При i == len(a)-1 ты пытаешься получить элемент a[len(a)-1+1] т.е. a[len(a)]. Элемента с таким индексом не существует и
соответственно возникает ошибка list index out of range.

Я так понимаю что ты хочешь протестировать массив на наличие подряд идущих одинаковых чисел. Если использовать a[i] и a[i+1] , то нужно перебирать все элементы кроме последнего. т.е.
 for i in range(0,len(a)-1) 

У тебя же range начинается с 1. Еще возможен вариант
 for i in range(1,len(a))
if(a[i-1] == a[i])
Предположу, что ты просто насобирал кусочки кода по разным местам и теперь пытаешься их соединить. Такие простые задания нужно писать самому, иначе потом будет еще больше проблем.

А еще я понять не могу зачем там умножение на 1?
Alisher Nasrullaev
Alisher Nasrullaev
17 671