python基础练习题(题⽬输⼊⼀⾏字符,分别统计出其中英⽂字母、空格、数字和其它字符的个数)
day10
---------------------------------------------------------------
实例017:字符串构成
题⽬输⼊⼀⾏字符,分别统计出其中英⽂字母、空格、数字和其它字符的个数。
正则匹配英文字母分析:看看string模块的使⽤
str.isalpha
如果字符串中⾄少有⼀个字符且所有字符均为字母则返回真值,否则返回假值。
str.isspace
如果字符串中⾄少有⼀个字符且所有字符均为空⽩字符则返回真值,否则返回假值。
str.isdigit
如果字符串中⾄少有⼀个字符且所有字符均为数字字符则返回真值,否则返回假值。
问题不⼤,直接上答案吧
1 string=input("输⼊字符串:")
2 alp=0
3 num=0
4 spa=0
5 oth=0
6for i in range(len(string)):
7if string[i].isspace():
8 spa+=1
9elif string[i].isdigit():
10 num+=1
11elif string[i].isalpha():
12 alp+=1
13else:
14 oth+=1
15print('space: ',spa)
16print('digit: ',num)
17print('alpha: ',alp)
18print('other: ',oth)
试了下不⽤range()函数也可以,⽬前没发现有什么问题
1 string = input("请输⼊字符串:")
2 alp=0
3 num=0
4 spa=0
5 oth=0
6for i in string:
7if i.isspace():
8 spa+=1
9elif i.isdigit():
10 num+=1
11elif i.isalpha():
12 alp+=1
13else:
14 oth+=1
15print('space: ',spa)
16print('digit: ',num)
17print('alpha: ',alp)
18print('other: ',oth)
来⼀个加强版的,采⽤正则的re.findall()
1import 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)
9print('字母',len(char),'\n数字',len(num),'\n空格',len(blank),'\n中⽂',len(chi),'\n其他',other)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论