分析
这道题的关键在于,如何设定输入十个字符,而且遇到的第一个换行符不会导致程序结束。
如下输入,遇到第一个换行符就会停止。m=[0,0,0,0] s=list(input()) print(s)
学习博主封心的文章,使用while循环,好像这一章都开始使用while循环去做题了。如果一个input()输入结束了,那么就知道回车符一定有了一个,但需要再判断字符数长度是否>10,否则还会循环下一行。
判断字符类型,用到了三个函数isalpha()
isspace()
isdigit()
:
对于两个列表的合并,借助于extend()函数:s=list(input())
lst.extend(s)
题目
本题要求编写程序,输入10个字符,统计其中英文字母、空格或回车、数字字符和其他字符的个数。
解法
cnt=0;letter=0;blank=0;digit=0;other=0;
lst=[]
while(True):
s=list(input())
lst.extend(s)
cnt+=1
if len(lst)+cnt>10:
cnt-=1
break
blank+=cnt
for i in lst:
if i.isalpha()==True:
letter+=1
elif i.isspace()==True:
blank+=1
elif i.isdigit()==True:
digit+=1
else:
other+=1
print("letter = {}, blank = {}, digit = {}, other = {}".format(letter,blank,digit,other))