默认情况下,input
的数据类型是 字符串。按下 ENTER 将返回一个空字符串,无法转换为浮点数,因为空字符串没有可转换的内容,这就导致了错误。以下是两种解决此错误的方法。
解决方案 1
不要直接将输入转换为浮点数,而是在将输入值赋给任何变量时进行转换。
data=input("Enter a number or just ENTER to quit:")
在循环之前添加以下语句以处理用户在未输入任何数字的情况下退出的条件。
if not data:
Max = 0
Min = 0
else:
Max = float(data)
Min = float(data)
最后,在循环内部的开头添加以下行。
data = float(data)
完整代码
count=0.0
Sum=0.0
average=0.0
data=input("Enter a number or just ENTER to quit:")
if not data:
Max = 0
Min = 0
else:
Max = float(data)
Min = float(data)
while data!='':
data = float(data)
count+=1
number=float(data)
Sum+=number
average=Sum/count
if data<Min:
Min=data
if data>Max:
Max=data
data=input("Enter a number or just ENTER to quit:")
print(count,("numbers entered."))
print("Sum:",Sum)
print("Average:",average)
print("Min:",Min)
print("Max:",Max)
解决方案2
你可以为空输入设置默认值。由于你将输入转换为浮点数,因此可以将任何数字设置为空输入的默认值。 但是,我不建议这样做,因为如果用户输入与默认值相同的数字,则循环将被终止。 在下面的示例中,我只修改了你代码的两行,并将空输入的默认值设置为0。
count=0.0
Sum=0.0
average=0.0
data=float(input("Enter a number or just ENTER to quit:") or 0)
Min=data
Max=data
while data!=0:
count+=1
number=float(data)
Sum+=number
average=Sum/count
if data<Min:
Min=data
if data>Max:
Max=data
data=float(input("Enter a number or just ENTER to quit:") or 0)
print(count,("numbers entered."))
print("Sum:",Sum)
print("Average:",average)
print("Min:",Min)
print("Max:",Max)
float()
,但它无法转换空字符串。将该行更改为data=input("输入一个数字或按ENTER退出:")
。 - Steven Rumbalski