在python中检查字符串是否为数字

在python中检查字符串是否为数字,python,string,Python,String,以下哪项是检查字符串是否可以表示为数字的最佳方法 (a) (b) (c) (d) 您可以通过这个Python代码,它会发现字符串是数字或浮点值 def typeofvalue(text): try: int(text) return 'int' except ValueError: pass try: float(text) return 'float' except ValueEr

以下哪项是检查字符串是否可以表示为数字的最佳方法

(a)

(b)

(c)

(d)


您可以通过这个Python代码,它会发现字符串是数字或浮点值

def typeofvalue(text):
    try:
        int(text)
        return 'int'
    except ValueError:
        pass

    try:
        float(text)
        return 'float'
    except ValueError:
        pass

    return 'str'

typeofvalue("1773171")

这四个版本都有不同的功能。因为第一个版本是唯一一个正确处理负片的版本,所以我希望在几乎所有情况下都使用它。即使调整其他版本以返回与第一个版本相同的值,为了清晰起见,我还是更喜欢第一个版本。但是,如果输入格式需要比
float
接受的格式更严格,可能不允许像
'123e+4'
这样的输入,那么正确编写正则表达式可能是最简单的解决方案。

这应该有助于:
Import re
check_regexp = re.compile(“^\d*\.?\d*$”)
def isNumber(token):
  for char in token:
  if not char in string.digits: return false
    return True
import re
check_replace = lambda x: x.replace(‘.’,’’,1).isdigit()
def typeofvalue(text):
    try:
        int(text)
        return 'int'
    except ValueError:
        pass

    try:
        float(text)
        return 'float'
    except ValueError:
        pass

    return 'str'

typeofvalue("1773171")