IndexError: список индексов вне диапазона в цикле while - PullRequest
0 голосов
/ 02 июня 2018

Я не могу понять, почему я получаю ошибку индекса.

при a = array1[item]

    while item <= n:
        a = array1[item]
        t = mid - a
        l = h_f(t)
        ab += l
        if ab > k:
            item+=1
            break
        ae += h_f(t + 1) - 1
        item+=1

n - число введенных значений, элемент = 0

array1 = [2, 3, 4]

Любая помощь?

Ответы [ 2 ]

0 голосов
/ 02 июня 2018

Массивы начинают индексирование с 0, поэтому последний индекс равен 2. Хотя n может быть 3, код может выйти за пределы

while item < n:
0 голосов
/ 02 июня 2018

Список с n элементами имеет элементы в индексах от 0 до n-1.Т.е. ваш цикл должен остановиться до n, а не у него.Замените <= на <, и все должно быть в порядке:

while item < n:
   # Here -^
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...