本题要求编写程序,输入10个字符,统计其中英文字母、空格或回车、数字字符和其他字符的个数。
输入格式:
输入为10个字符。最后一个回车表示输入结束,不算在内。
输出格式:
在一行内按照
letter = 英文字母个数, blank = 空格或回车个数, digit = 数字字符个数, other = 其他字符个数
的格式输出。
输入样例:
aZ &
09 Az
输出样例:
letter = 4, blank = 3, digit = 2, other = 1
解析:
看到这题和平常的不太一样了,是输入不一样了,在C语言中可以实现单个循环输入,在Python中就有点不太一样了。在输入一行字符后就会按一次回车,使用ent记录,最后一次回车不计,当输入十个字符后结束输入,把输入好的字符进行分类统计,最后把空格(space)与回车(ent)相加就可以了。
解题:
# 数据预处理
# 输入的字符、回车、字符、空格、数字、其它
stsr = list(); ent = letter = space = digit = other = 0
# 输入字符
while True:
s = list(input())
ent += 1 # 回车
stsr.extend(s)
if len(stsr) + ent > 10:
ent -= 1 # 最后一个回车不计
break
# 统计字符
for ch in stsr:
if ch.isalpha(): # isalpha:如果字符串至少有一个字符并且所有字符都是字母或文字则返回 True,否则返回 False
letter += 1
elif ch.isspace(): # isspace:如果字符串中只包含空格,则返回 True,否则返回 False
space += 1
elif ch.isdigit(): # isdigit:如果字符串只包含数字则返回 True 否则返回 False
digit += 1
else: # 其它字符
other += 1
# 打印统计结果
print("letter = {}, blank = {}, digit = {}, other = {}".format(letter, space + ent, digit, other))