python中的用户输入矩阵(n*n+;1)

python中的用户输入矩阵(n*n+;1),python,python-3.x,Python,Python 3.x,这段代码是以[0,0]开头的[i][j],但我希望它以[1,1]开头,我怎么办 import numpy as np n = int(input("How many variable you find ")) a = np.zeros((n,n+1)) print('Enter Augmented Matrix:') for i in range(n): for j in range(n+1): a[i][j] = float(input( f'a[{

这段代码是以[0,0]开头的[i][j],但我希望它以[1,1]开头,我怎么办

import numpy as np
n = int(input("How many variable you find "))
a = np.zeros((n,n+1))
print('Enter Augmented Matrix:')
for i in range(n):
    for j in range(n+1):
        a[i][j] = float(input( f'a[{i},{j}]= '))
print(a)
使用
range(n)
开始于
0
包括在内,并且
n
包括在内,在数学中这是
[0;n[
,从
1
开始
范围(1,n)
给你

for i in range(1, n):
    for j in range(1, n + 1):
如果您在第一个问题中输入
4
,然后填写您将得到的问题:

[[0. 0. 0. 0. 0.]
 [0. 1. 1. 1. 1.]
 [0. 1. 1. 1. 1.]
 [0. 1. 1. 1. 1.]]

如果您使用下面的方法,它会走得更远,因为数组的索引是
0-base
,因此如果您说数组的长度是5,则框索引是
0,1,2,3,4

for i in range(1, n + 1):
    for j in range(1, n + 2):

解决方案 如果您想填写所有值,但只需更改为用户打印的内容,请执行以下操作

for i in range(n):
    for j in range(n + 1):
        a[i][j] = float(input(f'a[{i + 1},{j + 1}]= ')) # +1 there
更改此项:

   for i in range(n):
        for j in range(n+1):
            a[i][j] = float(input( f'a[{i},{j}]= '))
为此:

for i in range(1,n):
    for j in range(1,n+1):
        a[i][j] = float(input( f'a[{i},{j}]= '))
同样,你也可以试试

 for i in range(n-1):
     for j in range(n):
         a[i+1][j+1] = float(input( f'a[{i},{j}]= '))

我可以问你为什么要从[1][1]开始吗?

对于我来说,第一个问题是
a[1,1]=
好的,cna你复制控制台输出吗?你的范围从1开始,所以你不能从0,0I开始我想让矩阵n*n+1和用户输入每个点,并告诉他们这一点是第1行第1列,那么你的代码应该按原样工作。唯一的区别是,由于列表是零索引的,它们将以0开始,以(n-1)结束第个索引,但不管怎样,都会得到相同的矩阵大小。