编写一个函数,分别统计出传入字符串参数(可能不只一个参数)的英文字母、空格、...
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.')
上述答案里,最后那个 i + 1 怎样去理解?是怎样算出是第几个字符串的呢? i + 1 的作用是为了将索引值(从0开始)转换为序号(从1开始)。
在这个函数中,我们使用一个 for 循环来遍历传入的字符串参数。for i in range(length): 这一行表示我们要遍历传入参数的数量,range(length) 会生成一个从 0 到 length - 1 的整数序列。i 的值会在每次循环时递增,表示当前处理的字符串的索引值。
由于 Python 的索引值是从 0 开始的,而我们希望在输出结果时以第1个、第2个这样的序号形式表示,所以我们在输出时需要将索引值 i 加 1,即 i + 1。这样就可以将索引值转换为序号。
举个例子,假设我们传入了两个字符串参数:
'I love fishc.com.'
'I love you, you love me.'
在循环的第一次迭代中,i 的值为 0,表示我们正在处理第一个字符串。因此,在输出结果时,我们需要将 i 的值加 1,得到 0 + 1 = 1,表示第1个字符串。
在第二次迭代中,i 的值为 1,表示我们正在处理第二个字符串。我们同样需要将 i 的值加 1,得到 1 + 1 = 2,表示第2个字符串。
这就是为什么我们在输出时使用 i + 1 的原因。 isdkz 发表于 2023-3-24 21:44
i + 1 的作用是为了将索引值(从0开始)转换为序号(从1开始)。
在这个函数中,我们使用一个 for 循环 ...
其实就是旧版《零基础入门学习Python》中第十八课里面所说的收集参数,*param就是收集参数。for i in range(length),其实就是数param代表了多少个参数,'I love fishc.com.', 'I love you, you love me.',这只是两个参数而已,但我错误理解成数param有多少个字符。
页:
[1]