为什么即使我尝试和除外也会出现错误?

时间:2020-12-25 02:49:00

标签: python if-statement try-catch

def temperature_def(tem):       
try:
    if tem >= 34 and tem <= 38:
        return tem
    else:
        print("You can not enter the list!")
        quit()
except:
    print("Enter a number!")
    quit()

pearson1 = People_class((input("Name and Surname (with out accents): ").lower()), int(input("Age: ")),
        covid_status_def(input("Someone close to you either has covid or had it? ").lower().strip()),
                    temperature_def(float(input("What is your temperature in degrees? "))))

这里我试图为 if 语句获取一个数字,我在最后一行输入。

try 和 except 应该识别是否输入了数字(不知道这是否是一个单词),并且应该按照下面的方式进行,但是,当我输入不是数字的内容时,它会出现错误。< /p>

为了澄清我正在做一个列表并且“float(input(...”)不能移动(据我所知)。

提前致谢,节日快乐 :D

1 个答案:

答案 0 :(得分:2)

那是因为您明确地尝试将用户输入转换为浮点数:

temperature_def(float(input("What is your temperature in degrees? ")))

您应该从上面删除 float 并传递输入而不进行任何显式转换。如果输入不正确,您的方法中定义的 try-except 将处理它。

编辑:由于您从 input 中删除了浮动转换,您现在必须将其放入 try 块中:

try:
    temp = float(temp)
    if tem >= 34 and tem <= 38:
         return tem
    else:
        print("You can not enter the list!")
        quit()
except:
    print("Enter a number!")
    quit()