Peteryo01223 发表于 2020-9-22 14:27:12

关于:for i in range(length)

原题目:
编写一个函数,分别统计出传入字符串参数(可能不只一个参数)的英文字母、空格、数字和其它字符的个数。

标准答案:
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', 'There is a beautiful day')

输出结果:
第1个字符串共有:英文字母13个,数字0个,空格2个,其它字符1个。
第2个字符串共有:英文字母17个,数字0个,空格5个,其它字符1个。
第3个字符串共有:英文字母20个,数字0个,空格4个,其它字符0个。

我的问题:
Python运行的时候,是怎么 得知 i 的值的?
如果从语句 for i in range(length)看来,i 的值应该是从 0 到 length 之间的任意一个值,不是么?

CH10 发表于 2020-9-22 14:38:32

for循环可以遍历任何序列的项目,如一个列表或者一个字符串。i会依次迭代range()生成的整数列表,
python range() 函数可创建一个整数列表
>>>range(10)      

>>> range(1, 11)   

sunrise085 发表于 2020-9-22 15:22:30

给你写了一下注释
def count(*param): # param是一个元组,就是传递进来的多个字符串组成的元组
    length=len(param)
    for i in range(length): # 外层循环,循环次数就是传进来的字符串个数
      letters=0 # 每次外层循环都会把这几个变量清零,用于统计下一个字符串的内容
      space=0
      digit=0
      others=0
      # 下面这个for循环是内层循环,用于统计一个字符串中不同类型字符的个数
      for each in param: # param就是第i个字符串,当i为0的时候,就是字符串'I love fishc.com',当i为2的时候就是字符串'There is a beautiful day'
            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', 'There is a beautiful day')

Peteryo01223 发表于 2020-9-22 15:37:04

sunrise085 发表于 2020-9-22 15:22
给你写了一下注释

感动。多谢啦!

Peteryo01223 发表于 2020-9-22 15:37:35

CH10 发表于 2020-9-22 14:38
for循环可以遍历任何序列的项目,如一个列表或者一个字符串。i会依次迭代range()生成的整数列表,
pyth ...

谢谢
页: [1]
查看完整版本: 关于:for i in range(length)