有什么方法可以在 python 中查找字符串中的值是否为浮点数?
Is there any way to find whether a value in string is a float or not in python?
我对字符串有疑问,我知道使用 isdigit()
我们可以确定字符串中的整数是否为 int,但如何确定它在字符串中的浮点数。我也用过 isinstance()
虽然它没有用。在字符串中查找值的任何其他替代方法是否为浮点数??
我的代码:
v = '23.90'
isinstance(v, float)
给出:
False
异常输出:
True
您可以将其转换为 float 或 int,然后像这样捕获最终异常:
try:
int(val)
except:
print("Value is not an integer.")
try:
float(val)
except:
print("Value is not a float.")
你可以 return False
在你的 except
部分和 True
在 try
部分的演员表之后,如果这是你想要的。
也许你可以试试这个
def in_float_form(inp):
can_be_int = None
can_be_float = None
try:
float(inp)
except:
can_be_float = False
else:
can_be_float = True
try:
int(inp)
except:
can_be_int = False
else:
can_be_int = True
return can_be_float and not can_be_int
In [4]: in_float_form('23')
Out[4]: False
In [5]: in_float_form('23.4')
Out[5]: True
您可以通过 isdigit() 检查数字是否为整数,并且根据它您可以 return 值。
s = '23'
try:
if s.isdigit():
x = int(s)
print("s is a integer")
else:
x = float(s)
print("s is a float")
except:
print("Not a number or float")
一种非常简单的方法是将其转换为浮点数,然后再次转换回字符串,然后将其与原始字符串进行比较 - 如下所示:
v = '23.90'
try:
if v.rstrip('0') == str(float(v)).rstrip('0'):
print("Float")
else:
print("Not Float")
except:
print("Not Float!")
我对字符串有疑问,我知道使用 isdigit()
我们可以确定字符串中的整数是否为 int,但如何确定它在字符串中的浮点数。我也用过 isinstance()
虽然它没有用。在字符串中查找值的任何其他替代方法是否为浮点数??
我的代码:
v = '23.90'
isinstance(v, float)
给出:
False
异常输出:
True
您可以将其转换为 float 或 int,然后像这样捕获最终异常:
try:
int(val)
except:
print("Value is not an integer.")
try:
float(val)
except:
print("Value is not a float.")
你可以 return False
在你的 except
部分和 True
在 try
部分的演员表之后,如果这是你想要的。
也许你可以试试这个
def in_float_form(inp):
can_be_int = None
can_be_float = None
try:
float(inp)
except:
can_be_float = False
else:
can_be_float = True
try:
int(inp)
except:
can_be_int = False
else:
can_be_int = True
return can_be_float and not can_be_int
In [4]: in_float_form('23')
Out[4]: False
In [5]: in_float_form('23.4')
Out[5]: True
您可以通过 isdigit() 检查数字是否为整数,并且根据它您可以 return 值。
s = '23'
try:
if s.isdigit():
x = int(s)
print("s is a integer")
else:
x = float(s)
print("s is a float")
except:
print("Not a number or float")
一种非常简单的方法是将其转换为浮点数,然后再次转换回字符串,然后将其与原始字符串进行比较 - 如下所示:
v = '23.90'
try:
if v.rstrip('0') == str(float(v)).rstrip('0'):
print("Float")
else:
print("Not Float")
except:
print("Not Float!")