嵌套for循环似乎重叠了

2024-05-20 18:43:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在写一个有两个嵌套for循环的程序,我把我的想法写在一张纸上,然后画了一个图表,我觉得我的逻辑是好的。但当我执行任务时,我得到了完全不同于我想要的东西。 然后我创建了一个只有这两个循环的程序的小版本,但问题仍然存在。这是我测试的小版本

lopt = 0
dwl = 0.04
Dt = 0.01

for i in numpy.arange(0, 5):

    for t in numpy.arange(lopt, dwl, Dt):     #Inner loop (time)
        print 't = ', t, 'row = ', i


    lopt = t + 0.001

我得到的结果是

^{pr2}$

但我想要的是

^{3}$

我的逻辑是: 外循环从0开始,然后内环从0-0.04开始 然后返回到外循环的最后一步,将变量lopt递增0.001。然后返回并再次执行外循环的一个步骤。现在我们再来一次内循环,从时间0.041到0.081开始。这一直重复,直到外循环执行6次。在

另一个问题是,至少在我当前的输出中,内环似乎在第一步中成功地执行了,但它只执行到0.03。因为我的范围是从0到0.04,增量是0.01,所以循环不应该运行0-0.01-0.02-0.03-0.04吗?同样对于外循环,它不应该运行0-1-2-3-4-5吗?在

我很抱歉,如果我打扰你这个问题,但我诚实地为这个问题画了一个8图表,也用我的手做了它,并认为它应该按预期运行。我觉得自己很蠢,因为当我用手去做的时候,我无法捕捉到逻辑中的任何流动


Tags: in程序版本numpyloopfortime图表
1条回答
网友
1楼 · 发布于 2024-05-20 18:43:56

{1>首先由

for i in numpy.arange(0, 5):
    print i

将打印01234,而不是{}。为了让它打印5,您需要按步长递增,对于外部循环(默认情况下)是1,对于内部循环是0.01。在

在第一次执行内部循环之后,lopt0.03,这意味着内部numpy.arange的参数是{},这只会导致一个循环。你真正想要的是

^{pr2}$

因为这样,内部numpy.arange的第二个求值将有(0.041, 0.09, 0.01)的参数,第三个将是(0.082, 0.131, 0.01)等等。在

相关问题 更多 >