一、参考解法:
import re def splitFunc( ): tmpStr = input('请输入字符串:') charNum = 0 digNum = 0 spaceNum = 0 otherNum = 0 for i in range(len(tmpStr)): 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()
二、参考解法:
s =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)
三、参考解法:
tmpStr = 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)
四、参考解法:
InPut = 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) print(''' 字母: {}, 个数: {} 空格: {}, 个数: {} 数字: {}, 个数: {} 其他: {}, 个数: {}'''\ .format(letters, len(letters), spaces, len(spaces), digits, len(digits),others, len(others)))