|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
def count(*param):
length = len(param) <======这里length=2
for i in range(length): <======这里 i=0 i=1
letters = 0
space = 0
digit = 0
others = 0
for each in param[i]: <======那这里i不就只有0,和1 两个值。怎么会把字符串检索到最后呢?为什么这里会从param[i=0]一直到param[i=len(str)]
if each.isalpha():
letters += 1
elif each.isdigit():
digit += 1
elif each == ' ':
space += 1
else:
others += 1
print('第 %d 个字符串共有:英文字母 %d 个,数字 %d 个,空格 %d 个,其他字符 %d 个。' % (i+1, letters, digit, space, others))
count('I love fishc.com.', 'I love you, you love me.')
前半个的理解很不错
你的第三个箭头,也就是内层for这里,第一句理解是对的,第二句估计是你想偏了,i=0和1,param[0]='I love fishc.com.', param[1]='I love you, you love me.'
当i=0 的时候,each遍历的是第一个字符串,each逐个取出字符串 'I love fishc.com.' 中的字符,进行字符类别判断
当i=1 的时候,each遍历的是第二个字符串,each逐个取出字符串'I love you, you love me.' 中的字符,进行字符类别判断
字符串本身就是可遍历对象,不需要使用下标去遍历,内层循环中each就是字符串内的字符,所以没有你想的 i=len(str)
|
|