鱼C论坛

 找回密码
 立即注册
查看: 1793|回复: 16

[已解决]关于函数入参*param时,如何做到让用户输入多个字符视为一个入参呢?

[复制链接]
发表于 2017-12-27 17:28:57 | 显示全部楼层 |阅读模式

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

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

x
由20课动动手1题想到的问题,如下:
def count(*param):
    lenth =len(param)
    for i in range(lenth):
        letters = 0
        digit = 0
        space = 0
        others = 0
        for each in param[i]:
            if each.isalpha():
                letters += 1
            elif each.isdigit():
                digit += 1
            elif each.isspace():
                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')   
该题是甲鱼老师的代码,但是个人觉得有个地方可以改进的,就是让用户在输入框输入N段话(即N个入参),再通过函数判断入参各个字母数字个数,要如何实现。
我自己尝试写的内容,让结果返回的是每一个字符当作一个入参了,想请教各位大神,小弟多谢了!
最佳答案
2017-12-27 18:51:43
缘来是你啊 发表于 2017-12-27 18:47
哦哦 多谢多谢,就是不知道该如何下手改,因为对于用户来说,让其主动输入来得到结果是最常用到的形式 ...

嗯,给你个思路:用while让用户重复输入,把每一次的输入的字符append进数组,当用户输入某些字符时break掉,把数组传进count即可。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2017-12-27 17:30:14 | 显示全部楼层
一楼要自顶,这个不能懒 ,先在此感谢大神们的回答啦!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-27 17:39:00 | 显示全部楼层
把你的代码贴出来吧,不然别人怎么帮你?
记得在要这样发代码哦,不然会很难看的:
!code@
代码部分
!/code@

把!改为[,@改为]即可
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-27 17:45:51 | 显示全部楼层
无符号整形 发表于 2017-12-27 17:39
把你的代码贴出来吧,不然别人怎么帮你?
记得在要这样发代码哦,不然会很难看的:

我就是把老师的最后一行替换成了:

param =input('请输入需要判断个数的内容:')
count(*param)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-27 17:46:28 | 显示全部楼层
缘来是你啊 发表于 2017-12-27 17:45
我就是把老师的最后一行替换成了:

param =input('请输入需要判断个数的内容:')

!code@
def count(*param):
    lenth =len(param)
    for i in range(lenth):
        letters = 0
        digit = 0
        space = 0
        others = 0
        for each in param[i]:
            if each.isalpha():
                letters += 1
            elif each.isdigit():
                digit += 1
            elif each.isspace():
                space += 1
            else:
                others += 1
        print('第 %d 个字符串共有:英文字母 %d,数字 %d 个,空格 %d 个,其他 %d个.'
              % (i+1,letters,digit,space,others))

param =input('请输入需要判断个数的内容:')
count(*param)

!/code@

点评

哎不是这样啊,!要改成"[",@要改成"]"  发表于 2017-12-27 17:48
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-27 17:50:29 | 显示全部楼层
缘来是你啊 发表于 2017-12-27 17:46
!code@
def count(*param):
    lenth =len(param)

小白一枚,不晓得怎么改,刚开始学

点评

不,我坚决不同意楼主的看法!: 0.0
然后!/code@->[/code]  发表于 2017-12-27 17:55
不,我坚决不同意楼主的看法!: 0
对不起,弄错了- - !code@ -> [code]  发表于 2017-12-27 17:55
我在看代码 我是说!/code@ -> [code]  发表于 2017-12-27 17:54
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-27 18:11:26 | 显示全部楼层
11
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2017-12-27 18:11:59 | 显示全部楼层
无符号整形 发表于 2017-12-27 17:39
把你的代码贴出来吧,不然别人怎么帮你?
记得在要这样发代码哦,不然会很难看的:

不会,没事,学识上,达者为师嘛,不懂就得虚心受教,很正常的道理,还很感谢你在解答我的困惑
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-27 18:34:28 | 显示全部楼层
缘来是你啊 发表于 2017-12-27 18:11
不会,没事,学识上,达者为师嘛,不懂就得虚心受教,很正常的道理,还很感谢你在解答我的困惑

很抱歉回复晚你了
在这里实参param根本不是个数组,用户输入的只是一个字符串,所以形参param只是字符串
然后在count里面送代param就是送代字符串了,each就是param的每一个字符,所以就会这样了
你这样设计是不合理的,我一会帮你改正下哈~
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-27 18:46:25 | 显示全部楼层
哦哦 多谢多谢,就是不知道该如何下手改,因为对于用户来说,让其主动输入来得到结果是最常用到的形式,所以才有此想法。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-27 18:47:08 | 显示全部楼层
无符号整形 发表于 2017-12-27 18:34
很抱歉回复晚你了
在这里实参param根本不是个数组,用户输入的只是一个字符串,所以形参param只是字符串 ...


哦哦 多谢多谢,就是不知道该如何下手改,因为对于用户来说,让其主动输入来得到结果是最常用到的形式,所以才有此想法。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-27 18:51:43 | 显示全部楼层    本楼为最佳答案   
缘来是你啊 发表于 2017-12-27 18:47
哦哦 多谢多谢,就是不知道该如何下手改,因为对于用户来说,让其主动输入来得到结果是最常用到的形式 ...

嗯,给你个思路:用while让用户重复输入,把每一次的输入的字符append进数组,当用户输入某些字符时break掉,把数组传进count即可。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-27 19:24:31 | 显示全部楼层
无符号整形 发表于 2017-12-27 18:51
嗯,给你个思路:用while让用户重复输入,把每一次的输入的字符append进数组,当用户输入某些字符时break ...

多谢多谢,我试试看,给你点赞
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-3-5 04:59

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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