关于: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 之间的任意一个值,不是么? for循环可以遍历任何序列的项目,如一个列表或者一个字符串。i会依次迭代range()生成的整数列表,
python range() 函数可创建一个整数列表
>>>range(10)
>>> range(1, 11)
给你写了一下注释
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')
sunrise085 发表于 2020-9-22 15:22
给你写了一下注释
感动。多谢啦! CH10 发表于 2020-9-22 14:38
for循环可以遍历任何序列的项目,如一个列表或者一个字符串。i会依次迭代range()生成的整数列表,
pyth ...
谢谢
页:
[1]