提出问题
输入一个字符串,请输出这个字符串包含多少个大写字母,多少个小写字母,多少个数字。要求输入一行包含一个字符串,输出三行,每行一个整数,分别表示大写字母、小写字母和数字的个数。
问题描述
示例:
输入: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)) |
将此代码运行。
图3.1 运行流程
结语
此类题在无法直接解决时可以尝试换一种思路思考,在解决时切记不要忘记除题目外的其余字符的处理。