brianwang93 发表于 2020-4-28 12:45:10

19讲动动手 01

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

这里为什么print(length)的结果是1?param的长度不是17嘛,我哪里打错了吗?

qiuyouzhi 发表于 2020-4-28 12:51:10

因为你写的是*param,也就是接收多个参数
默认打包为元组,也就是('I love fishc.com.'),
这个元组只有一个元素,长度当然是1.

wuqramy 发表于 2020-4-28 12:51:49

这个len是指你传入了几个字符串
页: [1]
查看完整版本: 19讲动动手 01