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


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在这些情况下非常有用。

你的代码应该是这样的:

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

如果值为定义类型,则可以使用.isinstance()获取False中的True

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":

最新更新