#我如何在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提供了清晰、明确的表达。
我认为你的代码完美地解决了这个问题。