python输⼊⼀⾏字符,分别统计出其中英⽂字母、空格、数字
和其它字符的个数。
⼀、参考解法:
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20s =input('请输⼊字符串:')
dic={'letter':0,'integer':0,'space':0,'other':0} for i in s:
if i >'a'and i<'z'or i>'A'and i<'Z':
dic['letter'] +=1
elif i in'0123456789':
dic['integer'] +=1
elif i ==' ':
dic['space'] +=1
else:
dic['other'] +=1
print('统计字符串:',s)
print(dic)
print('------------显⽰结果2---------------')
for i in dic:
print('%s='%i,dic[i])
print('------------显⽰结果3---------------')
for key,value in dic.items():
print('%s='%key,value)
⼆、参考解法:1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18tmpStr =input('请输⼊字符串:') alphaNum=0
numbers=0
spaceNum=0
otherNum=0
for i in tmpStr:
if i.isalpha():
alphaNum +=1
elif i.isnumeric():
numbers +=1
elif i.isspace():
spaceNum +=1
else:
otherNum +=1
print('字母=%d'%alphaNum) print('数字=%d'%numbers) print('空格=%d'%spaceNum) print('其他=%d'%otherNum)
三、参考解法:1
2 3 4 5 6 7 8 9 10 11 12 13 14InPut=input('请输⼊字符串:') letters  =[ ]
spaces =[ ]
digits  =[ ]
others =[ ]
for i in iter(InPut):
if i.isalpha():
letters.append(i)
elif i.isspace():
spaces.append(i)
elif i.isdigit():
digits.append(i)
else:
others.append(i)
14 15 16 17 18 19 20        others.append(i)
print('''
字母: {}, 个数: {}
空格: {}, 个数: {}
数字: {}, 个数: {}
其他: {}, 个数: {}'''\
.format(letters, len(letters), spaces, len(spaces), digits, len(digits),others, len(others)))
四、参考解法:
使⽤正则表达式 re.findall()
import re
s = input('请输⼊⼀串字符:')
char=re.findall(r'[a-zA-Z]',s)#以列表类型返回全部能匹配的⼦串
num=re.findall(r'[0-9]',s)
blank=re.findall(r' ',s)
chi=re.findall(r'[\u4E00-\u9FFF]',s)#汉字的Unicode编码范围
other = len(s)-len(char)-len(num)-len(blank)-len(chi)
print('字母',len(char),'\n数字',len(num),'\n空格',len(blank),'\n中⽂',len(chi),'\n其他',other)五、参考解法:
使⽤正则表达式 re.match()
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21import re
def splitFunc( ):
tmpStr = input('请输⼊字符串:')    charNum = 0
digNum = 0
spaceNum = 0
otherNum = 0
for i in range(len(tmpStr)):
python 正则表达式 空格if re.match('[a-zA-Z]',tmpStr[i]):            charNum +=1
elif re.match('\d',tmpStr[i]):
digNum +=1
elif re.match('\s',tmpStr[i]):
spaceNum +=1
else:
otherNum +=1
print('字符:',charNum)
print('数字:',digNum)
print('空格:',spaceNum)
print('其他:',otherNum) splitFunc()