智一面的面试题提供python的测试题
使用地址:http://www.gtalent.cn/exam/interview?token=906315a76b5c14231889351088713f76
题目:统计个数
输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
解法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技术交流群:941108876
智一面的面试题提供python的测试题
使用地址:http://www.gtalent.cn/exam/interview?token=364151fab9fb6e1b468f50b4d83afd42