为什么索引元素[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
答案 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