Skip to content

Latest commit

 

History

History
35 lines (21 loc) · 1.25 KB

115.md

File metadata and controls

35 lines (21 loc) · 1.25 KB

#我如何在Python中检查一个字符串否可转化为数字?

原问题地址:http://stackoverflow.com/questions/354038/how-do-i-check-if-a-string-is-a-number-float-in-python

##问题:

在Python中,检查一个字符串是否可以表示为数字的最可行的办法是什么?

我现在所使用的函数是:

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

这个函数不仅丑陋、缓慢,似乎还很笨拙。但是我还没有找到一个更好的方法,在应用中直接使用float()更差劲了。

##回答:

我只谈两点。

一个正则表达式或其他字符串解析将会更加丑陋和缓慢。

我不知道有什么函数比上面的函数更快。它调用函数并返回。Try/Catch不会招致太多代价,因为我们所遇到的最常见的例外也无需扩展搜索堆栈帧。

问题是任何数字转换函数都有两种结果

  • 数字,如果这个数字是有效的
  • 代码状态(例如,通过errno)或异常,显示没有有效的数字可以解析。

C语言(举个例子)围绕这个问题提出了许多方法。Python提供了清晰、明确的表达。

我认为你的代码完美地解决了这个问题。