Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:try,除了ValueError只工作一次_Python_Try Catch_User Input_Except_Valueerror - Fatal编程技术网

Python:try,除了ValueError只工作一次

Python:try,除了ValueError只工作一次,python,try-catch,user-input,except,valueerror,Python,Try Catch,User Input,Except,Valueerror,我有一个任务,要向Clesius计算器输入华氏温度,并使用try and exceptValueError函数,但我不能多次输入错误值,否则它会崩溃。我希望用户输入数字,而不是字母。这就是我的代码现在的样子 print("Hej och välkommen till Fahrenheit omvandlaren") Fahrenheit = (input("Vänligen ange grader i Fahrenheit: ")) try: test = float(Fahrenhe

我有一个任务,要向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子句要求用户输入。但第二个输入未经测试。 因此,当第二个输入用于浮点函数时,如果输入不正确,它将失败

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

尽量避免将代码放入可能引发异常的
except
块中。