优秀的编程知识分享平台

网站首页 > 技术文章 正文

Python中检查给定的字符串是否包含数字

nanyue 2024-10-05 18:46:11 技术文章 15 ℃

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

如果给定的字符串中包含数字True,否则返回False。

Python中检查字符串是否包含数字的一种简单方法是使用isdigit()方法验证字符串中的每个字符,isdigit()会返回一个布尔值,如果为True,则意味着字符串至少包含一个数字。

使用for循环+isdigit()检查字符串

def NumIn(s):
    for char in s:
        if char.isdigit():
            return True
    return False

str1="python4you"
str2 = "zbxx.net"
str3 = "123"
print(NumIn(str1))
print(NumIn(str2))
print(NumIn(str3))

输出:
True
False
True

首先,自定义函数,for循环检查字符串中每一个字符,一旦在字符串中找到一个数字,函数的执行就会停止,函数返回True,否则,找不到数字,返回Flase。

使用isdigit()和列表推导式检查字符串

>>>str1 = "py3"
>>>[c.isdigit() for c in str1]
[False, False, True]

使用列表推导式检查字符串每一个字符,返回一个包含布尔元素的列表。

可以使用if-else选择结构,返回字符串是否包含数字。

str1="python4you"
if True in [c.isdigit() for c in str1]:
    print("字符串中包含数字!")
else:
    print("字符串中没有数字!")

输出:
字符串中包含数字!

使用any()+isdigit()检查字符串是否包含数字

any() 函数用于判断给定的可迭代参数是否全部为False,则返回False,如果有一个为True,则返回 True。

str1 = "python4you"
str2 = "zbxx.net"
str3 = "123"
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()+isdigit()检查字符串是否包含数字


str1 = "python4you"
str2 = "zbxx.net"
str3 = "123"
print(any(map(str.isdigit, str1)))
print(any(map(str.isdigit, str2)))
print(any(map(str.isdigit, str3)))

输出:
True
False
True

使用re.search()检查字符串是否包含数字

使用正则表达式来检查字符串是否包含数字。正则表达式是基于预定义模式匹配文本的强大工具。在这里,我们使用“\d”来匹配数字。

import re
str1 = "python4you"
str2 = "zbxx.net"
str3 = "123"
print(bool(re.search(r'\d', str1)))
print(bool(re.search(r'\d', str2)))
print(bool(re.search(r'\d', str3)))

其他可以实现检查字符串是否包含数字的方法

#检查ASCii码
def NumIn(s):
    for i in s:
        if ord(i)>=48 and ord(i)<=57:
            return True
    return False

str1 = "python4you"
str2 = "zbxx.net"
str3 = "123"
print(NumIn(str1))
print(NumIn(str2))
print(NumIn(str3))

#遍历每个字符
str1 = "python4you"
num="0123456789"
for i in str1:
    if i in num:
        print("找到数字:",i)
        break

感谢阅读,关注我,精彩继续!

最近发表
标签列表