Приведенный ниже фрагмент кода вызывает следующую ошибку в последней строке IndexError: индекс назначения списка вне допустимого диапазона. Я ожидаю, что w - это массив с 3 значениями в нем: w [0], w [1], w [2]. Ты видишь ...

-1
Andy 6 Апр 2021 в 01:39

2 ответа

Лучший ответ

Эта строка w = [(n - 1) // 2] создает список размером 1 с целым значением 3 в нем. Вам следует просмотреть способ создания массива или создать его пустым и использовать функцию append.

0
Mickaël 5 Апр 2021 в 22:44

Простая трассировка показывает проблему. Я вставил тривиальный print для отслеживания значений.

den = 1 + 2 * pden
print(i, w)
w[i]= num / den

На выходе

0 [3]
1 [0.0]
Traceback (most recent call last):
  File "C:\Users\Prune\AppData\Local\Programs\Python\Python37\so.py", line 14, in <module>
    w[i]= num / den
IndexError: list assignment index out of range

w - это одноэлементный список, и вы пытаетесь проиндексировать второй элемент. Если вы хотите увеличить список, вам нужно использовать append или extend. Обратитесь к местному руководству для получения подробной информации о приложении.

0
Prune 5 Апр 2021 в 22:43