字符种类判断:
str.isalpha() --是否全是字母,并至少有一个字符
str.isdigit() --是否全是数字,并至少有一个字符
str.isspace() --是否全是空白字符,并至少有一个字符
str.isalnum() --是否全是字母或数字,并至少有一个字符
中文的汉字会被 isalpha 判定为 True:
如果想区分中文和英文可以使用 unicode。
s = u"中国"
print s.encode( 'UTF-8' ).isalpha() # False
设计一个函数,计算传入字符串中【数字】、【字母】、【空格】 以及 【其他】的个数,以字典形式返回结果
def my_count(data):
count_dict = {'数字':0,'字母':0,'空格':0,'其他':0}
for d in data:
d = d.encode()
if d.isdigit():
count_dict['数字'] += 1
elif d.isspace():
count_dict['空格'] += 1
elif d.isalpha():
count_dict['字母'] += 1
else:
count_dict['其他'] += 1
print(count_dict)
my_count('123 wer * #$6中国 ')
结果:
{'数字': 4, '字母': 3, '空格': 5, '其他': 5}
如果没有d = d.encode()
结果:
{'数字': 4, '字母': 5, '空格': 5, '其他': 3}