あなたのコードには2つの問題があります
- 最初の入力をスキップしていて、合計に追加していません
- 最後のターミネータ入力
-1
を合計に追加しています。
while ループ内のステートメントの順序を変更するだけです
age = int(raw_input ("Enter an age "))
while age != -1:
Totalage = Totalage + age
age = int(input("Enter an age "))
またraw_input
、 は一般に文字列を返すことに注意してください。これは、計算する前に int に変換する必要があります。
Itertools いくつかの素晴らしいツールを提供しています。楽しみのために、上記の while ループを次のようにコーディングしてみました。itertools.takewhile
>>> from itertools import count, takewhile
>>> sum(takewhile(lambda x: x != -1,
(int(raw_input("Enter an age ")) for e in count())))
Enter an age 20
Enter an age 30
Enter an age 40
Enter an age 50
Enter an age -1
140