如何检查字符串是否代表 Python 中的数值?
def is_number(s):
try:
float(s)
return True
except ValueError:
return False
上述工作,但它似乎笨重。
如果您正在测试的内容来自用户输入, 即使它代表 int
或 float
,它 仍然 是一个字符串。请参阅 如何将输入读取为数字? 用于转换输入,并 询问用户输入,直到他们给出有效响应 以确保输入代表 int
或 float
(或其他要求),然后再继续。
原文由 Daniel Goldberg 发布,翻译遵循 CC BY-SA 4.0 许可协议
我对两者都有争议。
正则表达式或其他字符串解析方法会更丑陋且更慢。
我不确定有什么比上述更快。它调用函数并返回。 Try/Catch 不会引入太多开销,因为最常见的异常是在没有大量搜索堆栈帧的情况下捕获的。
问题是任何数值转换函数都有两种结果
C(例如)以多种方式解决了这个问题。 Python 清楚而明确地列出了它。
我认为你这样做的代码是完美的。