在Python中检查字符串是否包含数字

6 投票
5 回答
8082 浏览
提问于 2025-04-16 22:52

如何检查字符串中是否包含数字在Python中?

我有一个变量,我想把它转换成浮点数,但我想先做一个判断,只有当这个变量里全是数字的时候才进行转换。

5 个回答

2

你还可以从一个字符串中提取数字。

import string
extract_digits = lambda x: "".join(char for char in x if char in string.digits + ".")

然后把这些数字转换成浮点数。

to_float = lambda x: float(x) if x.count(".") <= 1 else None

>>> token = "My pants got 2.5 legs"
>>> extract_digits(token)
'2.5'
>>> to_float(_)
2.5
>>> token = "this is not a valid number: 2.5.52"
>>> extract_digits(token)
'2.5.52'
>>> to_float(_)
None
3

我会使用一个尝试-捕获的结构来判断一个东西是不是数字。这样,如果s是数字,转换就会成功;如果不是数字,就会捕获到一个叫做ValueError的错误,这样你的程序就不会崩溃了。

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

只需要进行转换,如果失败了就捕捉到异常。

s = "3.14"
try:
  val = float(s)
except ValueError:
  val = None

撰写回答