本文介绍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
感谢阅读,关注我,精彩继续!