在Python中检查字符串是否包含数字
如何检查字符串中是否包含数字在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