如何通过不输入值来打破while循环?

时间:2015-03-24 13:22:33

标签: python loops while-loop break

我正在尝试编写一个非常简单的程序,该程序使用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: 

我明白为什么会收到此错误,但我不知道该怎么做。另外,我知道这可以通过列表或tryexcept完成,但我需要使用while循环来完成。

1 个答案:

答案 0 :(得分:1)

您需要测试空字符串,并在转换为float之前执行

while True:
    a = raw_input("Number: ")
    if not a:
        break
    total = total + float(a)
    num_values = num_values + 1

这个循环简直是无穷无尽的,执行break退出循环。