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

时间:2014-01-30 06:51:37

标签: python string

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

A)

def is_number(s):
  try:
    float(s)
    return True
  except ValueError:
    return False

b)中

Import re
check_regexp = re.compile(“^\d*\.?\d*$”)

c)中

def isNumber(token):
  for char in token:
  if not char in string.digits: return false
    return True

d)

import re
check_replace = lambda x: x.replace(‘.’,’’,1).isdigit()

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

你可以使用这个Python代码,它会发现字符串是数字或浮点值。

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

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

    return 'str'

typeofvalue("1773171")