困在While循环示例上

时间:2012-09-12 12:37:55

标签: python while-loop

为什么索引元素[0]的值22添加到下面代码中的总和? 此代码中的i始终不是< 5因为i = i -1

numbers = [22, 34, 12, 32, 4]
sum = 0

i = len(numbers)

while (i != 0):
   i -= 1
   sum = sum + numbers[i]

print "The sum is: ", sum

2 个答案:

答案 0 :(得分:3)

i = 5

while (i != 0) --> i=5
i-=1 --> i=4
sum = sum+numbers[4]

while (i != 0) --> i=4
i-=1 --> i=3
sum = sum+numbers[3]

while (i != 0) --> i=3
i-=1 --> i=2
sum = sum+numbers[2]

while (i != 0) --> i=2
i-=1 --> i=1
sum = sum+numbers[1]

while (i != 0) --> i=1
i-=1 --> i=0
sum = sum+numbers[0]

while (i != 0) --> i=0 so it'll stop.

如您所见,将添加数字[0]。

答案 1 :(得分:3)

您可以将代码(不改变其行为)重新安排为:

while (i != 0):
    sum = sum + numbers[i-1]
    i -= 1

这表明numbers[0]被添加到总和中。

但是,您不应该使用sum作为变量名,因为它会覆盖(有用的)内置函数,例如,它使您能够更简洁地编写代码:

sum(numbers[1:]) #sum of everything in list except 1st element