|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
编写一个函数,分别统计出传入字符串参数(可能不只一个参数)的英文字母、空格、数字和其它字符的个数。
def count(*string):
for i in range(len(string)):
#print(len(string)) 这是我用来验证string的长度的,结果是2
#print(i) ,这是我自己用来验证i的值,结果只输出了0和1
count_alpha = 0
count_num = 0
count_other = 0
count_space = 0
for each in string[i]:
if each.isalpha():
count_alpha += 1
elif each.isdigit():
count_num += 1
elif each.isspace():
count_space += 1
else:
count_other += 1
print('第%d个字符串共有:英文字母%d个,数字%d个,空格%d个,其他字符%d个' %(i + 1,count_alpha , count_num ,count_space , count_other))
count('I love fishc.com','I love you, you love me.')
输出结果
第1个字符串共有:英文字母13个,数字0个,空格2个,其他字符1个
第2个字符串共有:英文字母17个,数字0个,空格5个,其他字符2个
问题:
对于这里i的取值表示有点看不懂,和len(string)。
我自己的理解是len(string)只是求*string的string行参有几个。如果是这样的话,i的取值只有,0和1(根据实参的数目决定了)。但是对于for each in string[i]:语句里面的i,岂不是也只有0和1这两个值,
但是在实参('I love fishc.com','I love you, you love me.')中每个实参里面都不止2个字符。
理解不过来。
求解释
本帖最后由 jackz007 于 2019-8-25 13:35 编辑
在本例中,* string 就是元组 ('I love fishc.com ' , 'I love you, you love me.' ),注意,这个元组由两个元素构成,每个元素都是一个字符串。在函数内部,通过 string[0] 、string[1] 就可以分别索引到这两个字符串。
|
|