我正在尝试将我的代码从cpp转换为python 代码所做的是读取一个二维数组,将它分成w*w的相等部分,然后计算w*w部分中所有项的值的平均值,并将其存储在另一个数组中 该代码在cpp中运行良好,但当我用python编写几乎类似的代码时,它会给出错误的结果 我的cpp代码是'
for (int h=0,r=0;h<HEIGHT;r=0,h+=w)
{
for (;r<WIDTH;r+=w)
{
for (int i=h;i<h+w;i++)
{
for (int j=r;j<r+w;j++)
{
averageImArray[h/w][r/w]+=imArray[i][j];
}
}
averageImArray[h/w][r/w]/=w*w;
}
}
相应的python代码是
h=0
r=0
while (h<height):
while (r<width):
i=h
while (i<h+w):
j=r
while (j<r+w):
averageImArray[h/w][r/w]+=imArray[i][j]
j+=1
averageImArray[h/w][r/w]=(averageImArray[h/w][r/w])/(w*w)
i+=1
r+=w
r=0
h+=w
有人能指出错误吗
Python控制块由缩进控制
在c++代码中,
averageImArray[h/w][r/w]/=w*w;
是第二个循环的一部分。而在python代码中,它是第三个循环的一部分
从本质上讲,它不是同一个算法。您可能会感到困惑,因为您试图直接在Python中编写C++代码。它不仅不是python式的代码编写方式,而且效率更低,更容易出错。我建议您使用Pythons
for
语法重写您的代码:锅炉板现在不见了,更明显的是什么代码属于哪里。下一步是消除深度嵌套的循环。最里面的两个属于一个单独的函数
相关问题 更多 >
编程相关推荐