一尘不染

Python-如何检查字符串是否为数字(float)?

python

检查字符串是否可以在Python中表示为数字的最佳方法是什么?

我目前拥有的功能是:

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

它不仅丑陋而且缓慢,看起来笨拙。但是我还没有找到更好的方法,因为调用float main函数甚至更糟。


阅读 615

收藏
2020-02-07

共1个答案

一尘不染

不仅丑陋而且缓慢

我都对此表示怀疑。

正则表达式或其他字符串解析方法将更难看,更慢。

我不确定任何事情都可以比上述速度更快。它调用该函数并返回。Try / Catch不会带来太多的开销,因为最常见的异常是在没有大量搜索堆栈帧的情况下捕获的。

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

  • 一个数字(如果该数字有效)
  • 状态代码(例如,通过errno)或异常,表明无法解析有效数字。
    C(作为示例)以多种方式解决这一问题。Python清楚明确地列出了它。

我认为你执行此操作的代码是完美的。

2020-02-07