如何在 Python 中检查字符串是否包含数字
本文介绍如何检查 Python 字符串是否包含数字。
如果给定的字符串包含数字,则 Python 内置的 any
函数与 str.isdigit
一起将返回 True
。否则返回 False
。
如果给定的字符串包含数字,则模式为 r'\d'
的 Python 正则表达式搜索方法也可以返回 True
。
如果给定的 Python 迭代对象的任何元素为 True
,则 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
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', 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
对象或 None
的 re.search
结果转换为 True
或 False
。
工作示例
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
就运行时间而言,正则表达式评估比使用内置的字符串函数要快得多。如果字符串的值相当大,那么 re.search()
比使用字符串函数更理想。
在给定字符串上运行 search()
函数之前,使用 re.compile()
编译表达式,也会使执行时间更快。
将 compile()
的返回值捕获到一个变量中,然后在这个变量中调用 search()
函数。在这种情况下,search()
只需要一个参数,即对照编译后的表达式搜索的字符串。
def hasNumber(stringVal):
re_numbers = re.compile('\d')
return False if (re_numbers.search(stringVal) == None) else True
综上所述,内置函数 any()
和 isdigit()
可以很容易地串联使用,检查一个字符串是否包含一个数字。
然而,在正则表达式模块 re
中使用实用函数 search()
和 compile()
会比内置的字符串函数更快地生成结果。所以,如果你要处理大的数值或字符串,那么正则表达式的解决方案要比字符串函数更理想。
相关文章
Django 中的 Slug
发布时间:2023/05/04 浏览次数:173 分类:Python
-
本篇文章旨在定义一个 slug 以及我们如何使用 slug 字段在 Python 中使用 Django 获得独特的帖子。
在 Django 中按降序过滤查询集中的项目
发布时间:2023/05/04 浏览次数:157 分类:Python
-
在这个讲解中,学习如何借助 Django 中的 order_by() 方法按降序过滤出查询集中的项目。
Django ALLOWED_HOSTS 介绍
发布时间:2023/05/04 浏览次数:181 分类:Python
-
本文展示了如何创建您的 Django 网站,为公开发布做好准备,如何设置 ALLOWED_HOSTS 以及如何在使用 Django 进行 Web 部署期间修复预期的主要问题。
Django 中的 Select_related 方法
发布时间:2023/05/04 浏览次数:129 分类:Python
-
本文介绍了什么是查询集,如何处理这些查询以及我们如何利用 select_related() 方法来过滤 Django 中相关模型的查询。
使用 Post 请求将数据发送到 Django 服务器
发布时间:2023/05/04 浏览次数:159 分类:Python
-
在这篇关于Django的讲解中,我们简要介绍了post和get请求以及如何在Django中用post实现CSRF token。
Django 返回 JSON
发布时间:2023/05/04 浏览次数:106 分类:Python
-
在与我们的讨论中,我们简要介绍了 JSON 格式,并讨论了如何借助 Django 中的 JsonResponse 类将数据返回为 JSON 格式。
在 Django 中创建对象
发布时间:2023/05/04 浏览次数:59 分类:Python
-
本文的目的是解释什么是模型以及如何使用 create() 方法创建对象,并了解如何在 Django 中使用 save() 方法。
在 Django 中为多项选择创建字段
发布时间:2023/05/04 浏览次数:75 分类:Python
-
在本文中,我们将着眼于为多项选择创建一个字段,并向您展示如何允许用户在 Django 中进行多项选择。