Почему при вводе отрицательных значений элементов списка, компилятор выдает ошибку? IndexError: list index out of range

a = [int(g) for g in input().split()]
b = 0
for i in a:
   print(a[i-1])
   b += a[i-1]
print(b)

Ошибка: print(a[i-1]) IndexError: list index out of range


Ответы (1 шт):

Автор решения: n1tr0xs

Допустим вы ввели: 5 6 8
Тогда на первой итерации цикла в выражении i-1 содержится число 4. А элемента с таким номером в списке a не существует.
Предлагаю такое исправление вашего кода:

a = [int(g) for g in input().split()]
b = 0
for i in a:
   print(i)
   b += i
print(b)

Либо такой вариант

a = [int(g) for g in input().split()]
b = 0
for i in range(len(a)):
   print(a[i])
   b += a[i]
print(b)
→ Ссылка