统计字符串中的字符数
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.") #-*-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.") jackz007 发表于 2020-6-16 11:07
sum函数的参数是能直接加判断很循环语句的吗, sum(1 for x in param if x . isalpha())里面的参数都不用逗号的?请大佬帮分析下 本帖最后由 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 ] 中字母字符的数量。 jackz007 发表于 2020-6-16 13:05
sum() 括号中的表达式构成一个生成器
这个生成器会通过循环判断字符串 param[ i ]...
感谢大佬{:5_106:}
页:
[1]