漏气的嘟嘟君 发表于 2020-6-16 10:29:30

统计字符串中的字符数

print("----字符串字符统计----")

def count(*param):
    i = 0
    lenth = len(param)#计算出参数的个数
    for i in range(lenth):
      letter_num,digit_num,space_num,other_num = 0,0,0,0
      for each in param:
            if each.isalpha():
                letter_num += 1
            elif each.isdigit():
                digit_num += 1
            elif each.isspace():
                space_num += 1
            else:
                other_num += 1

      print("第{}字符串共有:英文字母{}个,数字{}个,空格{}个,其他字符{}个".format(i+1,letter_num,digit_num,space_num,other_num))

count("i love fishc.com.","i love you, you love me.")

jackz007 发表于 2020-6-16 11:07:00

#-*-coding:gbk-*-

def count(* param):
    for i in range(len(param)) :
      letter_num = sum(1 for x in param if x . isalpha())
      digit_num = sum(1 for x in param if x . isdigit())
      space_num = sum(1 for x in param if x . isspace())
      other_num = len(param) - letter_num - digit_num - space_num
      print("第{}字符串共有:英文字母{}个,数字{}个,空格{}个,其他字符{}个" . format(i + 1 , letter_num , digit_num , space_num , other_num))      

print("----字符串字符统计----")
count("i love fishc.com.","i love you, you love me.")

漏气的嘟嘟君 发表于 2020-6-16 11:15:12

jackz007 发表于 2020-6-16 11:07


sum函数的参数是能直接加判断很循环语句的吗, sum(1 for x in param if x . isalpha())里面的参数都不用逗号的?请大佬帮分析下

jackz007 发表于 2020-6-16 13:05:26

本帖最后由 jackz007 于 2020-6-16 13:07 编辑

漏气的嘟嘟君 发表于 2020-6-16 11:15
sum函数的参数是能直接加判断很循环语句的吗, sum(1 for x in param if x . isalpha())里面的参数都不用 ...

      sum() 括号中的表达式构成一个生成器
1 for x in param if x . isalpha()
      这个生成器会通过循环判断字符串 param[ i ] 中的每一个字符,如果属于字母,那就会产生一个 1,否则,就没有输出,最后,param[ i ] 中有多少个字母字符,就会产生出对应数量的数字 1,sum() 把这些 1 加在一起就是 param[ i ] 中字母字符的数量。

漏气的嘟嘟君 发表于 2020-6-16 13:20:01

jackz007 发表于 2020-6-16 13:05
sum() 括号中的表达式构成一个生成器

      这个生成器会通过循环判断字符串 param[ i ]...

感谢大佬{:5_106:}
页: [1]
查看完整版本: 统计字符串中的字符数