黄剑盛 发表于 2020-5-22 15:11:38

为什么是i+1,看来解释说是i默认值为0,不懂,i不是会变的吗

def count(*param):
    length = len(param)
    for i in range(length):
      letters = 0
      space = 0
      digit = 0
      others = 0
      for each in param:
            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.')

liuzhengyuan 发表于 2020-5-22 15:15:55

本帖最后由 liuzhengyuan 于 2020-5-22 15:20 编辑

因为列表索引是从 0 开始的
比如所 abcd 这个字符串
python 认为 b 是第一个字符(而不是第二个)
但是我们认为 b 是第二个字符,所以要加一(符合我们的习惯)

焦健鬼 发表于 2020-5-22 15:17:06

楼上正解

黄剑盛 发表于 2020-5-22 15:23:47

liuzhengyuan 发表于 2020-5-22 15:15
因为数组索引是从 0 开始的
比如所 abcd 这个字符串
python 认为 b 是第一个字符(而不是第二个)


懂了,我一开始以为第一个for是先把*param中一个元组拿出来循环,所以觉得不止到0和1,现在明白了,第一个for是对*param循环,所以i=0.1
页: [1]
查看完整版本: 为什么是i+1,看来解释说是i默认值为0,不懂,i不是会变的吗