鱼C论坛

 找回密码
 立即注册
查看: 1531|回复: 4

[技术交流] 统计字符串中的字符数

[复制链接]
发表于 2020-6-16 10:29:30 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
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[i]:
            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.")
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-6-16 11:07:00 | 显示全部楼层
  1. #-*-coding:gbk-*-

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

  9. print("----字符串字符统计----")
  10. count("i love fishc.com.","i love you, you love me.")
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2020-6-16 11:15:12 | 显示全部楼层

sum函数的参数是能直接加判断很循环语句的吗, sum(1 for x in param[i] if x . isalpha())里面的参数都不用逗号的?请大佬帮分析下
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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. 1 for x in param[i] if x . isalpha()
复制代码

        这个生成器会通过循环判断字符串 param[ i ] 中的每一个字符,如果属于字母,那就会产生一个 1,否则,就没有输出,最后,param[ i ] 中有多少个字母字符,就会产生出对应数量的数字 1,sum() 把这些 1 加在一起就是 param[ i ] 中字母字符的数量。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-16 13:20:01 | 显示全部楼层
jackz007 发表于 2020-6-16 13:05
sum() 括号中的表达式构成一个生成器

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

感谢大佬
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-21 22:44

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表