Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何通过不输入值来中断while循环?_Python_Loops_While Loop_Break - Fatal编程技术网

Python 如何通过不输入值来中断while循环?

Python 如何通过不输入值来中断while循环?,python,loops,while-loop,break,Python,Loops,While Loop,Break,我试图编写一个非常简单的程序,使用while循环读取一系列浮点值并计算它们的平均值,当用户只需按Enter键而不提供值时终止循环 到目前为止,我已经知道了这一点,但显然它产生了一个错误: 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 numb

我试图编写一个非常简单的程序,使用while循环读取一系列浮点值并计算它们的平均值,当用户只需按Enter键而不提供值时终止循环

到目前为止,我已经知道了这一点,但显然它产生了一个错误:

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 and except来完成,但我需要使用while循环来完成。

您需要测试空字符串,并在转换为浮点之前进行测试:

while True:
    a = raw_input("Number: ")
    if not a:
        break
    total = total + float(a)
    num_values = num_values + 1
这个循环是无止境的,执行一个中断来退出循环。

为什么不在尝试将循环转换为浮点之前测试它?此外,使用while循环并不一定排除使用try:except:。