任何人都可以给我一个完整的代码示例吗?如果我打印总数,为什么结果总数是21(即当前的总和)???
end=6
total = 0
current = 1
while current <= end:
total += current
current += 1
print total
答案 0 :(得分:11)
因为1+2+3+4+5+6
是21
。为什么那么神秘?
答案 1 :(得分:3)
通常可以通过引入一些基本的调试来深入了解这类事情。我在代码循环中添加了一个打印,以便您可以看到每次迭代后发生的事情:
end=6
total = 0
current = 1
while current <= end:
total += current
current += 1
print "total: ", total, "\tcurrent: ", current
print total
输出结果为:
total: 1 current: 2
total: 3 current: 3
total: 6 current: 4
total: 10 current: 5
total: 15 current: 6
total: 21 current: 7
21
总结这里发生的事情,总和当前分别初始化为0和1,第一个循环总数是使用total += current
设置的(相当于total = total + current
),即总数= 0+然后,电流增加1到2,所以在第一次循环之后它们是1&amp;分别为2。
在第二个循环中total += current
将被评估为total = 1 + 2(前一个循环结束时的值),依此类推。
答案 2 :(得分:2)
你有什么期望? 1 + 2 + 3 + 4 + 5 + 6 = 21
这里是每个循环的起始值和值
total 0 -> 1 -> 3 -> 6 -> 10 -> 15 -> 21
current 1 -> 2 -> 3 -> 4 -> 5 -> 6 -> 7