初学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 统计数字字母标点符合个数 学完你还说不会吗的主要内容,如果未能解决你的问题,请参考以下文章

初学python算法100例-案例28 逆序输出每位数字

初学python算法100例-案例23 输出菱形

初学python算法100例-案例9 间隔1秒输出结果

初学python算法100例-案例29 判断回文数

初学python算法100例-案例25 阶层求和 学完你也会

初学python算法100例-案例12 求水仙花数 多种不同解法