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