猿问

Python For 循环 - 关于第二个循环的问题

我刚刚开始学习如何在 python 中编码,我正在尝试理解以下代码:


import numpy as np

n=4 

matrix=np.zeros((n,n))  

for j in range (0,n):

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

      matrix[i,j]=2*n-i-j-1 

print (matrix) 

如果有人能帮助我理解每一行是如何执行的以及如何使用循环重新评估代码,我将不胜感激。特别是我如何解释关于“i”的第二个“for”循环提前谢谢!


HUH函数
浏览 259回答 2
2回答

慕哥6287543

不确定 StackOverflow 是否是解释代码的正确平台。反正...我更改了内部 for 循环以使其易于理解import numpy as npn=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)

噜噜哒

暂时删除矩阵的东西,添加一些打印语句,代码本身会告诉你循环是如何工作的!n=4for j in range (0,n):    for i in range (n-1,n-j-2,-1):        print(j, i)
随时随地看视频慕课网APP

相关分类

Python
我要回答