我需要我的代码只接受浮点值

I need my code to only accept float values

def check_datatype (data,datatype,message):


        if datatype == "Float":
            if not data:
                if not data:
                    print(message)
                return False,data
            else:
                return True,data


check = False
while not check:
    some_text = input('Input a float: ')
    check,a_float = check_datatype(some_text,"Float","You must input a number")
print(a_float)

我试过使用 .isdecimal 但它不起作用 (如果不是data.isdecimal)代码的第二部分是正确的,但第一部分不知何故是错误的。

如果值是已定义类型,您可以使用 .isinstance() 获取 True of False

value = 5

print(isinstance(value, float))

# Returns False

在您的 if 语句中:

if isinstance(value, float):
    print(value, "is float")
elif isinstance(value, int):
    print(value, "is interger")

我建议使用 if isinstance(datatype,float): 而不是 if datatype == "Float":

正如其他用户所建议的那样,isinstance 在这些情况下非常有用。

您的代码应如下所示:

def funct(data: float) -> (bool, float):
    isFloat = False
    if isinstance(data, float):
        isFloat = True
    else:
        print("message")
    return (isFloat, data)