2 回答

TA贡献1831条经验 获得超10个赞
不确定 StackOverflow 是否是解释代码的正确平台。反正...
我更改了内部 for 循环以使其易于理解
import numpy as np
n=4
创建一个 n*n 矩阵
matrix=np.zeros((n,n))
对于矩阵中的每一列
for j in range (0,n):
对于第 j 列中的每一行,但从 nj-1 到 n-1
注意:在原始示例中,-1末尾表示相反的顺序。我颠倒了循环顺序并-1在最后删除了,以产生相同的输出。请检查确认
nj-1 :这应该通过例子来理解。对于j==0值是n-1-> 最后一行。对于最后一列j==n-1,值为 0 -> 第一行。因此,对于每一列,从最后一行开始,我们对角向上进行到第一行。
只是一个对角向上移动的逻辑/方程。
注意:这只是每列的起点。
n - 1 :最后一行(虽然第二个数字是 n,但调用range(0, x)或range (x)扩展从0to x - 1。很像数组索引)
for i in range (n-j-1, n):
matrix[i,j]=2*n-i-j-1
print (matrix)

TA贡献1784条经验 获得超7个赞
暂时删除矩阵的东西,添加一些打印语句,代码本身会告诉你循环是如何工作的!
n=4
for j in range (0,n):
for i in range (n-1,n-j-2,-1):
print(j, i)
添加回答
举报