2016-09-06 74 views
1

这是我的代码。我正在做一个开始行动。当我运行程序错误字符串浮动

,我可以把这些值,但是当我走出循环出现以下错误信息:

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

你可以做'A_INPUT =浮动(输入( “输入产品成本”))' –

回答

0

有几个问题:

  1. 的是一个空字符串("")检查来尝试将其添加到float值之后a。你应该处理这个异常,以确保输入是数字。
  2. 如果有人没有输入空字符串或无效字符串,那么您会陷入无限循环而无法打印。这是因为您的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) 
1

要结合在同一条线上两个操作:一个字符串输入到字符串到float转换。如果输入空字符串结束程序,则转换为float失败,并显示错误消息;该错误包含它试图转换的字符串,并且它是空的。

将它分成多个行:

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

是不是'in'一个Python关键词?也许重命名变量 – Li357

+0

@AndrewL。谢谢,那是一个愚蠢的错误。 –

+0

没问题,很好的答案! – Li357