弄清楚如何找到输入数字的平均值

时间:2013-09-27 23:36:20

标签: python

这是我目前的代码:

total = 0.0
count = 0
data = input("Enter a number or enter to quit: ")
while data != "":
    count += 1
    number = float(data)
    total += number
    data = input("Enter a number or enter to quit: ")
    average = total / count
    if data > 100:
        print("error in value")
    elif data < 0:
        print("error in value")
    elif data == "":

print("These", count, "scores average as: ", average)

现在唯一的问题是“预期缩进块”

3 个答案:

答案 0 :(得分:1)

我会做一些很酷的事情,比如

my_list = list(iter(lambda: int(input('Enter Number?')), 999)) # Thanks JonClements!!
print sum(my_list)
print sum(my_list)/float(len(my_list))

如果你想做条件,这样的事情会起作用

def getNum():
   val = int(input("Enter Number"))
   assert 0 < val < 100 or val == 999, "Number Out Of Range!"
   return val

my_list = list(iter(getNum, 999)) # Thanks JonClements!!
print sum(my_list)
print sum(my_list)/float(len(my_list))

答案 1 :(得分:0)

要计算平均值,您需要跟踪元素的数量(while循环的迭代次数),然后在完成后将总和除以该数字:

total = 0.0
count = 0
data = input("Enter a number or enter 999 to quit: ")
while data != "999":
    count += 1
    number = float(data)
    total += number
    data = input("Enter a number or enter 999 to quit: ")
average = total / count
print("The average is", average)

请注意,我将sum重命名为total,因为sum是内置函数的名称。

答案 2 :(得分:0)

total = 0.0
count = 0
while True:
    data = input("Enter a number or enter 999 to quit: ")
    if data == "999":
        break
    count += 1
    total += float(data)
print(total / count)