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

  1. 带有 str.isdigit 的 Python any 函数来检查字符串是否包含数字
  2. re.search(r'\d') 检查字符串是否包含数字

本文介绍如何检查 Python 字符串是否包含数字。

如果给定的字符串包含数字,则 Python 内置的 any 函数str.isdigit 一起将返回 True。否则返回 False

如果给定的字符串包含数字,则模式为 r'\d'的 Python 正则表达式搜索方法也可以返回 True

带有 str.isdigit 的 Python any 函数来检查字符串是否包含数字

如果给定的 Python 迭代对象的任何元素为 Ture,则 any 函数返回 True,否则,返回 False

如果给定字符串中的所有字符均为数字,则 str.isdigit() 返回 True,否则返回 False

any(chr.isdigit() for chr in stringExample)

如果 stringExample 至少包含一个数字,那么上面的代码将返回 True,因为 chr.isdigit() for chr in stringExample 在可迭代对象中至少有一个 True

工作示例

str1 = "python1"
str2 = "nonumber"
str3 = "12345"

print(any(chr.isdigit() for chr in str1))
print(any(chr.isdigit() for chr in str2))
print(any(chr.isdigit() for chr in str3))

输出:

True
False
True

map() 函数

Python map(function,iterable) 函数将函数 function 应用于给定可迭代对象的每个元素,并返回一个迭代器产生以上结果。

因此,我们可以将上述解决方案重写为

any(map(str.isdigit, stringExample))

工作示例

str1 = "python1"
str2 = "nonumber"
str3 = "12345"

print(any(map(str.isdigit, str1)))
print(any(map(str.isdigit, str2)))
print(any(map(str.isdigit, str3)))

输出:

True
False
True

re.search(r'\d') 检查字符串是否包含数字

re.search(r'\d', string) 函数扫描 string 并返回匹配对象对于与给定模式匹配的第一个位置- \d,表示在 0 到 9 之间的任何数字,如果找不到匹配项,则返回 None

import re

print(re.search(r'\d', "python3.8"))
#output: <re.Match object; span=(6, 7), match='3'>

match 对象包含 2 个元组的 span,它们是 match 的开始和结束位置,以及匹配的内容,例如 match ='3'

bool() 函数可以将 match objectNonere.search 结果转换为 TrueFalse

工作示例

import re

str1 = "python12"
str2 = "nonumber"
str3 = "12345"

print(bool(re.search(r'\d', str1)))
print(bool(re.search(r'\d', str2)))
print(bool(re.search(r'\d', str3)))

输出:

True
False
True

相关文章 - Python String

  • 如何用 Pythonic 的方式来检查字符串是否为空
  • comments powered by Disqus