如何总计一个循环?

Chr*_*man 1 python while-loop

目的是将差异输入,如果输入-1则程序停止,我的总计陈述错误.请有人帮我修理一下.

Totalage = 0

age = 0

print "Enter you Family member's ages!"

age = raw_input ("Enter an age ")

while age != -1:
    age = input("Enter an age ")
    Totalage = Totalage + age

print Totalage
Run Code Online (Sandbox Code Playgroud)

Abh*_*jit 6

您的代码有两个问题

  1. 您正在跳过第一个输入,而不是将其添加到总计中
  2. 您正在将最后一个终结符输入添加-1到Total.

只需更改while循环中语句的顺序即可

age = int(raw_input ("Enter an age "))
while age != -1:    
    Totalage = Totalage + age
    age = int(input("Enter an age "))
Run Code Online (Sandbox Code Playgroud)

另请注意,raw_input通常会返回一个字符串,在您想要计算之前需要将其转换为int.


Itertools提供一些很棒的工具,为了好玩,我尝试用上面的循环编码 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
Run Code Online (Sandbox Code Playgroud)

  • 哈,为'itertools`解决方案+1 +1 (2认同)