嵌套for循环的意外结果

时间:2018-04-21 23:11:56

标签: python for-loop

所以我在edx上学习并在嵌套循环上练习 而且我很难理解我是如何得到错误答案的。

这是练习

m = 0
for x in range (1,3):
    k = 0
    for y in range (-2,0):
        k = k + y
        m = m + k
print (m)

我知道当有一个嵌套循环时,第一个for循环将迭代一次,然后继续进行第二个for循环,这将迭代完成,所以我凭这些知识开始做数学运算:

0+-2      k=-2
0+-2      m=-2

-2+-1     k=-3
-2+-3     m=-5

-3+-2     k=-5
-5+-2     m=-7

0+-1      k=-1
-7+-1     m=-16

我最终得到-16

1 个答案:

答案 0 :(得分:3)

对于k的每次迭代,您正在将x重置为0。您的计算假定k未重置。

您可以通过打印km的中间值:

来查看
m = 0
for x in range (1,3):
    k = 0
    for y in range (-2,0):
        k = k + y
        m = m + k
        print(k, m)

# -2 -2
# -3 -5
# -2 -7
# -3 -10