孙赖 发表于 2020-9-9 21:10:45

今天写小甲鱼的作业又遇到了一道难题求助

1. 编写一个函数,分别统计出传入字符串参数(可能不只一个参数)的英文字母、空格、数字和其它字符的个数。
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 个。)
怎么写呀这道题 看答案也看不明白 有大佬能帮帮我写一个注释吗 还有就是这个(*param)收集参数和普通参数到底是什么区别呀 新手真的搞不明白 谢谢大佬{:5_104:}
            

疾风怪盗 发表于 2020-9-9 21:24:02

def count(*param):# *param是传入不定长参数,可以是多个参数
    length = len(param)# 获取参数的个数
    print(param)# 可以打印看下每个参数是什么
    for i in range(length):# 循环,有两个参数就循环两次
      letters = 0# 初始化统计变量
      space = 0
      digit = 0
      others = 0
      for each in param:# 对每个参数的每个字符进行循环遍历
            print(each)# 可以打印看下每个each是什么
            if each.isalpha():# 判断是否是纯字母
                letters += 1
            elif each.isdigit():# 判断是否是纯数字
                digit += 1
            elif each == ' ':# 判断是否是空格
                space += 1
            else:
                others += 1# 其他字符统计
      print(f'第{i + 1}个字符串共有:英文字母{letters}个,数字{digit}个,空格{space}个,其他字符{others}个。')


count('sdjadjla1 ssda', 'sda')

heidern0612 发表于 2020-9-10 08:06:44

def count(*param):# *带星号的形参变量表示不定量变量,可传入1个或多个。
    length = len(param)# 获取参数的长度,也就是个数。
    print(param)
    for i in range(length):# for循环,循环参数的个数,也就是数量。
      letters = 0# 初始化4个变量,分别为字母、空格、数字、其他。
      space = 0
      digit = 0
      others = 0
      for each in param:# 对单个参数的字符进行循环遍历
            print(each)
            if each.isalpha():# 判断是否是字母,是的话letter就加1.
                letters += 1
            elif each.isdigit():# 同理,判断是否数字。
                digit += 1
            elif each == ' ':# 同理,判断是否空格。
                space += 1
            else:
                others += 1# 其他字符统计
      print(f'第{i + 1}个字符串共有:英文字母{letters}个,数字{digit}个,空格{space}个,其他字符{others}个。')


count('sdjadjla1 ssda', 'sda') # 函数调用,传入实参。
页: [1]
查看完整版本: 今天写小甲鱼的作业又遇到了一道难题求助