Python: 尝试,除了 ValueError 只工作一次

Python: try, except ValueError only works once

我有一项任务是将华氏温度转换为 Clesius 计算器并使用 try and except 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")

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

您可以将输入放入循环中:

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

您的 except 子句要求用户输入。但是第二个输入没有经过测试。 所以在float函数中使用第二个输入时,输入不正确就会失败

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