|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
def strcount(*param):
letters = 'abcdefghijklmnopkrstuvwxyz'
numbers = '0123456789'
spaces = ' '
for i in range(len(param)):
letterscount = 0
numberscount = 0
spacescount = 0
otherscount = 0
for each in param[i]:
if each in letters:
letterscount += 1
elif each in numbers:
numberscount += 1
elif each in spaces:
spacescount += 1
else:
otherscount += 1
print('第 %d 个字符串共有:英文字母 %d 个,数字 %d 个,空格 %d 个,其他字符 %d 个。' % (i+1, letterscount, numberscount, spacescount, otherscount))
这样写有什么问题吗,求指教。
最后输出的结果和论坛的答案不一致。论坛的答案是英文字母13个,其他字符2个。
本帖最后由 thexiosi 于 2018-4-23 10:25 编辑
hi 原因如下
第二行代码 letters = 'abcdefghijklmnopkrstuvwxyz',也就是说,统计英文字母时,仅包括小写字母、没有大写字母
因此,当你统计 'I love fishc.com.'时,不会统计大写字母 I,因此统计的字母少1、其他字符加1
>>> strcount('AB a') #仅统计了小写字母a,AB被归为其他字符
第 1 个字符串共有:英文字母 1 个,数字 0 个,空格 1 个,其他字符 2 个。
|
|