2017-12-02 262 views
0

我有一个分配做出华氏Clesius计算器和使用尝试,除了ValueError功能,但我不能输入错误的值超过一次或崩溃。我希望用户输入一个数字而不是字母。这是我的代码现在的样子的Python:尝试,除了ValueError异常只能使用一次

print("Hej och välkommen till Fahrenheit omvandlaren") 
Fahrenheit = (input("Vänligen ange grader i Fahrenheit: ")) 

try: 
    test = float(Fahrenheit) 

except ValueError: 
    Fahrenheit = (input("Vänligen ange ett tal!")) 

Celsius = (float(Fahrenheit)-32)*5/9 
print(Fahrenheit, "Fahernheit är lika med",(round(Celsius,2)),"grader Celsius") 

我在通用新的节目,并希望如果你能以简单的方式解释如何使人们有可能多次输入的字符串,而无需在程序崩溃

+0

尽量避免把代码中的'except'块,能够产生异常。 –

回答

1

你可以可以把输入在一个循环:

while True: 
    fahrenheit = (input("Vänligen ange grader i Fahrenheit: ")) 
    try: 
     test = float(fahrenheit) 
     break 
    except ValueError: 
     pass 
0

你除了条款要求从用户的输入。但第二个输入未经测试。 因此,当第二个输入用于float函数时,如果输入不正确,它将失败。

如果你希望用户继续给输入,直到他输入一个数字,你需要一个循环。 在该循环中,您需要一个try-except子句(或其他一些测试)来测试输入是否是数字。