鱼C论坛

 找回密码
 立即注册
查看: 2322|回复: 2

[已解决]编写一个函数,分别统计出传入字符串参数(可能不只一个参数)的英文字母、空格、...

[复制链接]
发表于 2023-3-24 21:39:19 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
def count(*param):
    length = len(param)
    for i in range(length):
        letters = 0
        space = 0
        digit = 0
        others = 0
        for each in param[i]:
            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 怎样去理解?是怎样算出是第几个字符串的呢?
最佳答案
2023-3-24 21:44:18
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 的原因。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-3-24 21:44:18 | 显示全部楼层    本楼为最佳答案   
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 的原因。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-3-24 22:11:19 | 显示全部楼层
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有多少个字符。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-14 20:59

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表