python基础练习题(题目 输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数)
2021-06-07 21:57 第二个卿老师 阅读(2604) 评论(0) 编辑 收藏 举报day10
---------------------------------------------------------------
实例017:字符串构成
题目 输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
分析:看看string模块的使用
str.isalpha 如果字符串中至少有一个字符且所有字符均为字母则返回真值,否则返回假值。 str.isspace 如果字符串中至少有一个字符且所有字符均为空白字符则返回真值,否则返回假值。 str.isdigit 如果字符串中至少有一个字符且所有字符均为数字字符则返回真值,否则返回假值。
问题不大,直接上答案吧
1 string=input("输入字符串:") 2 alp=0 3 num=0 4 spa=0 5 oth=0 6 for i in range(len(string)): 7 if string[i].isspace(): 8 spa+=1 9 elif string[i].isdigit(): 10 num+=1 11 elif string[i].isalpha(): 12 alp+=1 13 else: 14 oth+=1 15 print('space: ',spa) 16 print('digit: ',num) 17 print('alpha: ',alp) 18 print('other: ',oth)
试了下不用range()函数也可以,目前没发现有什么问题
1 string = input("请输入字符串:") 2 alp=0 3 num=0 4 spa=0 5 oth=0 6 for i in string: 7 if i.isspace(): 8 spa+=1 9 elif i.isdigit(): 10 num+=1 11 elif i.isalpha(): 12 alp+=1 13 else: 14 oth+=1 15 print('space: ',spa) 16 print('digit: ',num) 17 print('alpha: ',alp) 18 print('other: ',oth)
来一个加强版的,采用正则的re.findall()
1 import re 2 3 s = input('请输入一串字符:') 4 char=re.findall(r'[a-zA-Z]',s)#以列表类型返回全部能匹配的子串 5 num=re.findall(r'[0-9]',s) 6 blank=re.findall(r' ',s) 7 chi=re.findall(r'[\u4E00-\u9FFF]',s)#汉字的Unicode编码范围 8 other = len(s)-len(char)-len(num)-len(blank)-len(chi) 9 print('字母',len(char),'\n数字',len(num),'\n空格',len(blank),'\n中文',len(chi),'\n其他',other)