@smi33
очарован IT, уровень - preElementary

Почему при вводе отрицательных значений элементов списка, компилятор выдает ошибку (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)
  • Вопрос задан
  • 67 просмотров
Пригласить эксперта
Ответы на вопрос 2
Ternick
@Ternick
У вас нет разделителя в строке первой.
И у вас получается массив с одним элементом из того что вы ввели.
.split() используется с параметром.
>>> "sss".split()
['sss']
>>> "s|s|s".split("|")
['s', 's', 's']
>>>

Таким образом вы получаете массив из одной строки и в цикле for тут же уходите за его границы
Ответ написан
Комментировать
@Enigma985
Исходный код:

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

Это происходит потому, что элемента под целочисленным индексом i - 1 — не существует.

Получение количества целочисленных индексов

Для получения количества целочисленных индексов списка a, функция range() примет определённые аргументы:
  • целочисленный индекс 0;
  • количество целочисленных индексов списка a.

Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы