解决思路:
- 先进行拆开,查看给定的对象每个字符元素是否为字母
- 判断其中有一个为真,那就可以判断存在字母
拆方式:
- 通过for循环可以实现
for i in 'Test1234':
print(i)
- 通过re.findall()可以实现
import re
s = "hello"
char_list = re.findall('.', s) # '.'匹配任何单个字符
print(char_list) # 输出: ['h', 'e', 'l', 'l', 'o']
怎么判断呢,把所有字母都列出来逐个去匹配,匹配到了说明是字符可以是可以,python有个函数专门做字母判断的
- str.isalpha() 字符函数,所有字符都是字母就返回True,否则返回false
- isdigit():仅对数字字符有效 {0-9}
- str.isnumeric():检查一个字符串是否可以表示一个数字(包括整数、浮点数、负数等)
st = 'Tes,2345 '
for i in st:
if i.isalpha():
print(i,'是字母')
else:
print(i,'不是字母')
# 输出
# T 是字母
# e 是字母
# s 是字母
# , 不是字母
# 2 不是字母
# 3 不是字母
# 4 不是字母
# 5 不是字母
# 不是字母
最后只需要验证结果中有一个为真的,就说明给的的字符串存在字母,否则不存在
def isStr(st):
for i in st:
if i.isalpha():
return True
return False
st = 'Tes,2345 '
print(isStr(st))
看起来实现了,但还可以更简单点,通过python内置函数any() 实现,该函数表示所有迭代对象元素有一个为真返回True,否则有一个空、假返回False
最后成果
def assert_str(obj):
return any(s.isalpha for s in obj)
str_obj = 'UIIG567, '
print(r'测试字符判断是否存在字母结果:{}'.format(assert_str(str_obj)))