鱼C论坛

 找回密码
 立即注册
查看: 930|回复: 5

解析这道题

[复制链接]
发表于 2018-3-11 11:30:09 | 显示全部楼层 |阅读模式

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

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

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.','147','woajg147')
这个i 是算他的长度
那这个i+1怎么就会把他共有几个字符串带入进去
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-3-11 12:01:02 | 显示全部楼层
这里函数count()的参数param实质上是一个元组,函数内部变量length求的是这个元组的长度。
代码中调用该函数时传递的参数实际上就是:('I love fishc.com.', 'I love you, you love me.','147','woajg147')这个元组;它的长度是4.
如果调用为count('123'),则传递的参数是('123',)这个元组,长度为1。
如果调用为count(list('a1b')),则传递的参数是('a1b',)这个元组,长度也为1。
如果调用为count(*list('a1b')),则传递的参数是('a',’1','b')这个元组,长度变成3。
这里涉及到可变参数的概念,可以去看看。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-3-11 12:12:03 | 显示全部楼层
tsembrace 发表于 2018-3-11 12:01
这里函数count()的参数param实质上是一个元组,函数内部变量length求的是这个元组的长度。
代码中调用该函 ...

我想问下像我这种0基础的买什么书好,
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-11 12:45:28 | 显示全部楼层
无情老兔兔 发表于 2018-3-11 12:12
我想问下像我这种0基础的买什么书好,

我差不多也是,现在看的是网上的廖雪峰教程
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-11 14:47:34 | 显示全部楼层
无情老兔兔 发表于 2018-3-11 12:12
我想问下像我这种0基础的买什么书好,

认真看小甲鱼的视频教程,里面都有详细教学的。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-11 15:43:40 | 显示全部楼层
我想你可能问的是最后
print('第 %d 个字符串共有:英文字母 %d 个,数字 %d 个,空格 %d 个,其他字符 %d 个。' % (i+1, letters, digit, space, others))    这里如何带入的字符串:
首先 % (i+1, letters, digit, space, others))  是格式化输出的用法,其效果是:
print('第 (i+1) 个字符串共有:英文字母 (letters) 个,数字 (digit) 个,空格 (space) 个,其他字符(others) 个
其他楼上已经解释了,这题重点在于对于定义count(*parama)中的理解,实际上就是将其作为一个元组来处理,实际上走一遍就可以通了。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-28 12:48

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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