- A+
所属分类:Python习题
结果要求
输入一段内容,可任意为字母,数字,符号和其他类型,判断出各自出现的次数,展示效果为:
解决方案
- 通过for循环,来输出相关内容,判断是否存在在类型当中,依次计算数量。
- def count(*str1):
- word = 'qwertyuiopasdfghjklzxcvbnm'
- num = '1234567890'
- blank =' '
- words=0
- nums=0
- blanks=0
- for j in str1:
- for i in j:
- if i in word:
- words+=1
- if i in num:
- nums +=1
- if i in blank:
- blanks+=1
- symbol = len(j) - words -nums -blanks
- print(j,'包含"{0}"字母,"{1}"数字,"{2}"个空格,"{3}"个其他符号'.format(words,nums,blanks,symbol))
- words = 0
- nums = 0
- blanks = 0
- count('https:www.lijinlong.cc','http://bbs.fishc.com/','_____1111hello,x ')
代码出现的问题:
1、words、nums、blanks需要重置为0,不然会出现叠加
2、当使用(*str1)所出来的值为元祖,需要通过for循环将其遍历分拆出来,再用for循环遍历将每一个值进行对比。
- 使用自带的内置方法进行判断,相对于我写的代码,这个代码更简单(https://www.lijinlong.cc/python/pyxx/1561.html)
- def count(*param):
- length = len(param)
- for i in range(length):
- letters = 0
- space = 0
- digit = 0
- others = 0
- for each in param[i]:
- if each.isalpha():
- letters += 1
- elif each.isdigit():
- digit += 1
- elif each == ' ':
- space += 1
- else:
- others += 1
- print('第 %d 个字符串共有:英文字母 %d 个,数字 %d 个,空格 %d 个,其他字符 %d 个。' % (i + 1, letters, digit, space, others))
- count('https:www.lijinlong.cc', 'http://bbs.fishc.com/','_____1111hello,x ')
- isalpha() 至少有一个字符串,且所有字符都是字母
- isdigit()字符串是否只包含数字