初学python算法100例-案例16 统计数字字母标点符合个数 学完你还说不会吗
Posted 技术专家团-小兔子编程
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了初学python算法100例-案例16 统计数字字母标点符合个数 学完你还说不会吗相关的知识,希望对你有一定的参考价值。
题目:统计个数
输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
解法1 常规解法
程序分析:利用ASCII码进行匹配
程序源码
ss = str(input("输入一行字符:"))
letters = 0 #统计英文字母个数
space = 0 #统计数字个数
digit = 0 #统计空格个数
others = 0 #统计其他字符
for i in range(len(ss)): #利用字符在ASCII码中的位置逐个统计
if("0" <= ss[i] <= "9"):
digit += 1
elif("A" <= ss[i] <= "Z" or "a" <= ss[i] <= "z"):
letters += 1
elif(ss[i] == " "):
space += 1
others = len(ss) - letters - space - digit
print("字母数量 = %d,数字数量 = %d,空格数量 = %d,其它字符数量 = %d"%(letters,digit,space,others))
运行结果
解法2 字符函数
程序分析:利用字符自带的函数isalpha、isspace、isdigit进行判断
程序源码
ss = input('请输入一个字符串:\\n')
letters = 0
space = 0
digit = 0
others = 0
for c in ss:
if c.isalpha():
letters += 1
elif c.isspace():
space += 1
elif c.isdigit():
digit += 1
else:
others += 1
print ('字母数量 = %d,空格数量 = %d,数字数量 = %d,其它字符数量 = %d' % (letters,space,digit,others))
运行结果
解法3 正则表达式
程序分析:利用正则表达式,还可以统计中文汉字;上面两种方法是不能统计汉字
程序源码
import re
ss = input('输入一串字符:')
char = re.findall(r'[a-zA-Z]',ss)
num = re.findall(r'[0-9]',ss)
blank = re.findall(r' ',ss)
chi = re.findall(r'[\\u4E00-\\u9FFF]',ss)
other = len(ss)-len(char)-len(num)-len(blank)-len(chi)
print("字母:", len(char),",数字:", len(num),",空格:",len(blank),",中文:",len(chi),",其他:",other)
运行结果
学完以上三种方法,你还会觉得统计字符的数量难吗?
还有更多其他的解法,欢迎一起交流学习
以上是关于初学python算法100例-案例16 统计数字字母标点符合个数 学完你还说不会吗的主要内容,如果未能解决你的问题,请参考以下文章