这是我的代码。我正在做一个初学者的执行。当我运行程序时
我可以输入值,但是当我离开循环时,会出现以下错误消息:
a + = float (input ("Enter the product cost"))
ValueError:无法将字符串转换为float:
有人可以帮助我吗?
这就是:
e = 0.25
f = 0.18
a = 0.0
while True:
a += float(input("Enter the product cost: "))
if a == "":
break
b = a*e
c = a*f
d = a+b+c
print ("tax: " + b)
print ("tips: " + c)
print ( "Total: " + d)
答案 0 :(得分:1)
您在同一行上组合了两个操作:字符串的输入以及字符串到float
的转换。如果输入空字符串以结束程序,则转换为float
会失败并显示您看到的错误消息;错误包含它试图转换的字符串,它是空的。
将其拆分为多行:
while True:
inp = input("Enter the product cost: ")
if inp == "":
break
a += float(inp)
答案 1 :(得分:0)
有几个问题:
("")
值float
之后,检查是否为空字符a
。您应该处理此异常,以确保输入是数字。b, c, d
计算和prints
的缩进超出了while
循环的范围。这应该做你想要的:
e = 0.25
f = 0.18
a = 0.0
while True:
try:
input_number = float(input("Enter the product cost: "))
except ValueError:
print ("Input is not a valid number")
break
a += input_number
b = a*e
c = a*f
d = a+b+c
print ("tax: ", b)
print ("tips: ", c)
print ( "Total: ", d)