要浮动的错误字符串

时间:2016-09-06 16:25:13

标签: python python-3.x

这是我的代码。我正在做一个初学者的执行。当我运行程序时

我可以输入值,但是当我离开循环时,会出现以下错误消息:

 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)

2 个答案:

答案 0 :(得分:1)

您在同一行上组合了两个操作:字符串的输入以及字符串到float的转换。如果输入空字符串以结束程序,则转换为float会失败并显示您看到的错误消息;错误包含它试图转换的字符串,它是空的。

将其拆分为多行:

while True:
    inp = input("Enter the product cost:  ")
    if inp == "":        
        break
    a += float(inp)

答案 1 :(得分:0)

有几个问题:

  1. 在尝试将其添加到("")float之后,检查是否为空字符a 。您应该处理此异常,以确保输入是数字。
  2. 如果某人没有输入一个空的或无效的字符串,那么你会陷入一个无限循环而没有任何打印。这是因为b, c, d计算和prints的缩进超出了while循环的范围。
  3. 这应该做你想要的:

    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)