迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Python >

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

作者:迹忆客 最近更新:2023/02/28 浏览次数:

本文介绍如何检查 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 对象或 Nonere.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

就运行时间而言,正则表达式评估比使用内置的字符串函数要快得多。如果字符串的值相当大,那么 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() 会比内置的字符串函数更快地生成结果。所以,如果你要处理大的数值或字符串,那么正则表达式的解决方案要比字符串函数更理想。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

Django 中的 Slug

发布时间:2023/05/04 浏览次数:173 分类:Python

本篇文章旨在定义一个 slug 以及我们如何使用 slug 字段在 Python 中使用 Django 获得独特的帖子。

Django ALLOWED_HOSTS 介绍

发布时间:2023/05/04 浏览次数:181 分类:Python

本文展示了如何创建您的 Django 网站,为公开发布做好准备,如何设置 ALLOWED_HOSTS 以及如何在使用 Django 进行 Web 部署期间修复预期的主要问题。

Django 中的 Select_related 方法

发布时间:2023/05/04 浏览次数:129 分类:Python

本文介绍了什么是查询集,如何处理这些查询以及我们如何利用 select_related() 方法来过滤 Django 中相关模型的查询。

在 Django 中上传媒体文件

发布时间:2023/05/04 浏览次数:198 分类:Python

在本文中,我们简要介绍了媒体文件以及如何在 Django 项目中操作媒体文件。

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 中进行多项选择。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便