提出问题

输入一个字符串,请输出这个字符串包含多少个大写字母,多少个小写字母,多少个数字。要求输入一行包含一个字符串,输出三行,每行一个整数,分别表示大写字母、小写字母和数字的个数。

 

问题描述

示例:

输入:1+a=Aab

输出:1

            3

            1

 

算法描述

我们需要思考如何将大小写字母与数字分别计数,在此可利用ASCII码表。将大小写字母和数字与其一一对应。创建一个循环,将字符串中的每一个字符都放进去对照,符合条件的即可计数。除此以外,字符串中还可能包含其余不属于字母和数字的字符,在这里可以直接将其余字符归为一类。接下来展示此题的完整代码。

list = str(input(‘请输入字符串:’))

num = []

small = []

capital = []

other = []

for i in range(len(list)):

if ord(list[i]) in range(48,58):

    num.append(list[i])

elif ord(list[i]) in range(97,123):

     small.append(list[i])

elif ord(list[i]) in range(65,99):

     capital.append(list[i])

else:

     other.append(list[i])

print(‘%s’% len(capital))

print(‘%s’% len(small))

print(‘%s’% len(num))

将此代码运行。

Python | 分类计数_Python

图3.1 运行流程

 

结语

此类题在无法直接解决时可以尝试换一种思路思考,在解决时切记不要忘记除题目外的其余字符的处理。