学习boy123 发表于 2020-5-8 17:38:07

请教19讲动动手作业

def count(*param):
    length = len(param)
    for i in range(length):
      letters = 0
      space = 0
      digit = 0
      others = 0
      for each in param:
            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('I love fishc.com.', 'I love you, you love me.')

麻烦哪位帮忙讲解下,中段没有理解,谢谢了。

liuzhengyuan 发表于 2020-5-8 17:41:23

本帖最后由 liuzhengyuan 于 2020-5-8 17:46 编辑

对元组中的每个字符串一一枚举

如果 each 是字母 letters + 1
如果 each 是数字 digit + 1
如果 each 是空格 space + 1
如果 each 是其他 others + 1

最后使用 格式化 输出

学习boy123 发表于 2020-5-8 17:49:45

liuzhengyuan 发表于 2020-5-8 17:41
对元组中的每个字符串一一枚举

如果 each 是字母 letters + 1


明白了。
还想问下 for each in param 收集参数加是什么意思,脑子里有想法,但是不确定有点模糊。

liuzhengyuan 发表于 2020-5-8 17:52:16

本帖最后由 liuzhengyuan 于 2020-5-8 17:53 编辑

学习boy123 发表于 2020-5-8 17:49
明白了。
还想问下 for each in param 收集参数加是什么意思,脑子里有想法,但是不确定有点模糊。

前面加一个“*”,表示参数是一个列表或元组
for each in param 就是迭代
每第 n 次循环 ,each 就会是 param 第 n 个参数的值
for i in ['a', 'b', 'c']:
第一次 each = 'a'
第二次 each = 'b'
……

满意那就设一个【最佳答案】吧~{:10_254:}

学习boy123 发表于 2020-5-8 17:58:22

liuzhengyuan 发表于 2020-5-8 17:52
前面加一个“*”,表示参数是一个列表或元组
for each in param 就是迭代
每第 n 次循环 ,each 就会 ...

明白了,收集参数原来也可以是列表,谢谢。
页: [1]
查看完整版本: 请教19讲动动手作业