-3

以下のコードで、インデックス要素 [0] の値 22 が合計に加算されるのはなぜですか? i常にこのコードではありません< 5i = 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
4

2 に答える 2

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
于 2012-09-12T12:48:54.830 に答える
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.

ご覧のとおり、numbers[0] が追加されます。

于 2012-09-12T12:40:49.857 に答える