鱼C论坛

 找回密码
 立即注册
查看: 2628|回复: 8

几乎同样的代码改成函数后无法正常运行了

[复制链接]
发表于 2017-1-16 18:37:48 | 显示全部楼层 |阅读模式

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

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

x
在做20课的动动手时,我写了个程序如下:
s = '2345yurhgr4t5yhn vc '
digit = 0
alphabet = 0
blank = 0
other = 0
for i in s:
        if i.isdigit():
                digit += 1
        elif i.isalpha():
                alphabet += 1
                print(i,end ='')
        elif i == ' ':
                blank += 1
        else:
                other += 1
print ('\n''该字符串共有%d个数字,%d个字母,%d个空格,%d个其它数字' % (digit, alphabet, blank, other))

这个程序可以正常运行并且得出正确结果:
yurhgrtyhnvc
该字符串共有6个数字,12个字母,2个空格,0个其它数字


但是当我把它改成函数的时候:
def string(*s):
    digit = 0
    alphabet = 0
    blank = 0
    other = 0
    for i in s:
        if i.isdigit():
            digit += 1
        elif i.isalpha():
            alphabet += 1
            print(i,end ='')
        elif i == ' ':
            blank += 1
        else:
            other += 1
    print ('\n''该字符串共有%d个数字,%d个字母,%d个空格,%d个其它数字' % (digit, alphabet, blank, other))


string('2345yurhgr4t5yhn vc ')

却出错了,结果如下:

该字符串共有0个数字,0个字母,0个空格,1个其它数字


请问我这个函数该的哪里有问题么?
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-1-16 18:50:59 | 显示全部楼层
把函数里的*去掉
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-1-16 20:03:31 | 显示全部楼层
*s 这个是什么鬼?还有你们发代码怎么不按代码格式发,这样看有点别扭,不舒服
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-1-16 23:32:23 | 显示全部楼层

果然如此……谢谢朋友

不过收集函数里那*是干嘛的?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-1-16 23:33:03 | 显示全部楼层
零度非安全 发表于 2017-1-16 20:03
*s 这个是什么鬼?还有你们发代码怎么不按代码格式发,这样看有点别扭,不舒服

不太懂怎么按格式发……
抱歉……
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-1-16 23:34:01 | 显示全部楼层
fishC 发表于 2017-1-16 22:13
*s是收集参数的意思,而你后面传进去的是一个字符串

明白了,谢谢朋友!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-1-16 23:43:16 | 显示全部楼层
你带了*,传进去的字符串变成了元祖,即('xxxxxxx')
如果非要带*的话,你函数里s就要变成s[0]
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-2-25 00:54

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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