为了账号安全,请及时绑定邮箱和手机立即绑定

如何检查字符串是否为数字(浮点数)?

如何检查字符串是否为数字(浮点数)?

慕婉清6462132 2019-05-31 12:46:07
如何检查字符串是否为数字(浮点数)?检查字符串是否可以用Python表示为数字的最佳方法是什么?我目前的职能是:def is_number(s):     try:         float(s)         return True     except ValueError:         return False这不仅是丑陋和缓慢,似乎笨重。但是,我没有找到更好的方法,因为调用float在主要功能上甚至更糟。
查看完整描述

4 回答

?
阿晨1998

TA贡献2037条经验 获得超6个赞

这不仅丑陋而且缓慢

我会对两者都提出异议。

regex或其他字符串解析方法将更丑陋和更慢。

我不确定任何事情都能比上面的更快。它调用函数并返回。TRY/CATCH不会带来太多的开销,因为最常见的异常是在不对堆栈帧进行广泛搜索的情况下捕获的。

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

  • 一个数字,如果该数字是有效的
  • 状态代码(例如,通过errno)或异常,以表明不能解析任何有效数字。

C(举个例子)围绕着这个问题,有很多种方法。Python清楚而明确地列出了它。

我觉得你的代码做得很好。


查看完整回答
反对 回复 2019-05-31
?
慕容森

TA贡献1853条经验 获得超18个赞

您可能需要考虑一个例外:字符串‘nan’

如果您希望is_number为‘nan’返回false,则此代码将无法工作,因为Python将其转换为非数字的表示(讨论标识问题):

>>> float('NaN')nan

否则,我实际上应该感谢您提供了我现在广泛使用的代码。*)

g。


查看完整回答
反对 回复 2019-05-31
  • 4 回答
  • 0 关注
  • 744 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信