我需要我的代码只接受浮点值
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)
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)