为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

HUH函数 2021-08-24 18:34:13
我刚刚开始学习如何在 python 中编码,我正在尝试理解以下代码:import numpy as npn=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”循环提前谢谢!
查看完整描述

2 回答

?
慕哥6287543

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)


查看完整回答
反对 回复 2021-08-24
?
噜噜哒

TA贡献1784条经验 获得超7个赞

暂时删除矩阵的东西,添加一些打印语句,代码本身会告诉你循环是如何工作的!


n=4

for j in range (0,n):

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

        print(j, i)


查看完整回答
反对 回复 2021-08-24
  • 2 回答
  • 0 关注
  • 257 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号