首页 > 解决方案 > 使用数组和用户输入时出现 Python 索引错误

问题描述

我正在使用 vscode 并没有用红色下划线,但是当我运行编译器时出现此错误:IndexError: list assignment index out of range, for line 16。

def QuadraticEquation():
  abc = str(raw_input("In the equation ax^2+bx+c what is a, b, and c (display split each answer up by one space. EX: 1 4 5): "))

  x_axis = raw_input("What is the maximum size of the graph you would like (in units EX: 10): ")

  a,b,c = abc.split()
  a= int(a)
  b=int(b)
  c=int(c)

  x_values = []
  y_values = []
  i=0
  while(i<=x_axis):
    x_values.append(i)
    y_values[i] = ((a*x_values[i]**2) + (b*x_values[i]) +(c))
    i+=1



QuadraticEquation()

标签: pythonfunctionuser-input

解决方案


您不能对y_values列表中尚不存在的索引使用赋值。换句话说,y_values一开始是空的,第一次通过while你尝试索引元素的循环[0],它还不存在,因此错误。

改变:

y_values[i] = ((a*x_values[i]**2) + (b*x_values[i]) +(c))

至:

y_values.append((a*x_values[i]**2) + (b*x_values[i]) +(c))

推荐阅读