我正在尝试编写一个非常简单的程序,该程序使用while
循环读取一系列float
值并计算它们的平均值,当用户只按时终止循环输入而不提供值。
这是我到目前为止所做的,但显然会产生错误:
total = 0
num_values = 0
a = 0
while a != None:
a = raw_input("Number: ")
total = total + float(a)
num_values = num_values + 1
print "The number of values entered was ",num_values
print "The mean is ",total/num_values
错误:
total = total + float(a)
ValueError: could not convert string to float:
我明白为什么会收到此错误,但我不知道该怎么做。另外,我知道这可以通过列表或try
和except
完成,但我需要使用while
循环来完成。
答案 0 :(得分:1)
您需要测试空字符串,并在转换为float之前执行:
while True:
a = raw_input("Number: ")
if not a:
break
total = total + float(a)
num_values = num_values + 1
这个循环简直是无穷无尽的,执行break
退出循环。