Python菜单集成矩阵输入功能时出现List index out of range错误咨询
错误原因分析
- 矩阵元素存储逻辑错误:内层输入循环中,你直接将用户输入的浮点数赋值给了循环变量
j,且b.append(j)的缩进位置错误,放在了内层for j in range(n)循环外部。这会导致每一行的数组b只会追加最后一次输入的元素,最终matriz_A的每一行都仅有1个元素,后续遍历访问下标超过0时就会触发List index out of range错误。 - 打印循环缩进错误:矩阵打印的代码块缩进位置错误,放在了构造矩阵的外层
for i in range(n)循环内部,矩阵还未完全构造完成就开始遍历打印,同时你重复使用了变量名i作为打印循环的迭代变量,会覆盖外层构造矩阵的循环变量i,进一步打乱矩阵构造逻辑。 - 打印逻辑存在冗余问题,多余的
]输出也会导致格式错误。
修复后可正常运行的参考代码
ans=True while ans: print(""" 1) First part 2) Second part 3) Third part 4) Fourth part """) ans=input("Choose option ") if ans=="1": n = int(input("Number of variables: ")) matriz_A=[] for i in range(n): b=[] for j in range(n): # 不要复用循环变量j存储输入值 val = float(input("Type entry ["+str(i+1)+"]["+str(j+1)+"] of matriz A: ")) # append放在内层循环里,每个输入值都存入当前行 b.append(val) matriz_A.append(b) # 打印逻辑放在矩阵构造完成之后,不要放在构造循环内部 for i in range(n): print('[', end=" ") for j in range(n): print(matriz_A[i][j],end=" ") print(']')
内容的提问来源于stack exchange,提问作者rfrancamont
相关产品推荐
相关产品推荐

