Python:尝试,除了ValueError只能运行一次

时间:2017-12-02 20:38:25

标签: python try-catch user-input except valueerror

我有一个指定华氏温度到Clesius计算器并使用try和除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")

我是一般的编程新手,如果您能够以简单的方式解释如何在不使程序崩溃的情况下多次输入字符串,我将不胜感激

2 个答案:

答案 0 :(得分:1)

您可以将输入置于循环中:

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

答案 1 :(得分:0)

您的except子句要求用户输入。但是没有测试第二个输入。 因此,当在float函数中使用第二个输入时,如果输入不正确,它将失败。

如果您希望用户在输入数字之前继续提供输入,则需要循环。 在该循环中,您将需要一个try-except子句(或其他一些测试)来测试输入是否为数字。