在python中,有没有办法确定字符串中的值是否为浮点值?

在python中,有没有办法确定字符串中的值是否为浮点值?,python,string,isinstance,Python,String,Isinstance,我对字符串有一个问题,我知道使用isdigit我们可以找到字符串中的整数是否为int,但如何找到它在字符串中的浮点值。我也使用了iInstance,尽管它不起作用。在字符串中查找值的任何其他替代方法是float还是not 我的代码: v = '23.90' isinstance(v, float) 其中: False 例外输出: True 您可以将其强制转换为float或int,然后捕获最终的异常,如下所示: try: int(val) except: print(&quo

我对字符串有一个问题,我知道使用isdigit我们可以找到字符串中的整数是否为int,但如何找到它在字符串中的浮点值。我也使用了iInstance,尽管它不起作用。在字符串中查找值的任何其他替代方法是float还是not

我的代码:

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.")
v = '23.90'
try:
    if v.rstrip('0') == str(float(v)).rstrip('0'):
        print("Float")
    else:
        print("Not Float")
except:
    print("Not Float!")
您可以在except部分返回False,在try部分的强制转换后返回True,如果这是您想要的。

也许您可以试试这个

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

您可以通过isdigit检查数字是否为整数,并根据这一点返回值

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

一种非常简单的方法是将其转换为float,然后再次转换为string,然后将其与原始字符串进行比较,如下所示:

try:
    int(val)
except:
    print("Value is not an integer.")
try:
    float(val)
except:
    print("Value is not a float.")
v = '23.90'
try:
    if v.rstrip('0') == str(float(v)).rstrip('0'):
        print("Float")
    else:
        print("Not Float")
except:
    print("Not Float!")

这回答了你的问题吗?这回答了你的问题吗?如果s=text怎么办?@Ruan这次尝试,expect块将处理s=text的边缘情况。