鱼C论坛

 找回密码
 立即注册
查看: 1307|回复: 4

[已解决]不动就问系列-----20讲,动动手0

[复制链接]
发表于 2018-2-14 21:50:22 | 显示全部楼层 |阅读模式

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

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

x
最近学到20讲,
在动动手遇到一个百思不得其解的问题

0. 请用已学过的知识编写程序,统计下边这个长字符串中各个字符出现的次数并找到小甲鱼给大家的话


于是

def jiancha (string1):
    letter=0
    space=0
    digit=0
    others=0
    letterlist=[]
    spacelist=[]
    digitlist=[]
    otherslist=[]

    for each in string1:
        if each.isalpha():
            letter += 1
            letterlist.extend(each)
        elif each.isdigit():
            digit += 1
            digitlist.extend(each)
        elif each == ' ':
            space += 1
            spacelist.extend(each)
        else:
            others +=1
            otherslist.extend(each)
    print('''这段文字含有:
    英文字母 %d 个
    数字 %d 个
    空格 %d 个
    其他字符 %d 个''' % (letter,digit,space,others))
    print()
    print('英文列表:')
    print(letterlist)
    print('数字列表:')
    print(digitlist)

string1= input('请输入字符:\n')
jiancha(string1)


上面可以正常运行。。。。
但是问题在于如果我把def jiancha (string1):  改成 def jiancha (*string1):  虽然也会正常运行 但是结果都是错的
求大大解决一下
最佳答案
2018-2-14 21:59:20
改为*string1,接收可变数量的参数,这时会把input得到的值作为元组的一个元素,再for each in string1:时不是遍历字符串中每个字符,而是以整个字符串作为遍历的一个值。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-2-14 21:56:43 | 显示全部楼层
要是改成改成 def jiancha (*string1):
参数就要挨个输入,逗号分隔。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-14 21:57:14 | 显示全部楼层
*表达式适用于不知道要输入多少个参数。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-14 21:59:20 | 显示全部楼层    本楼为最佳答案   
改为*string1,接收可变数量的参数,这时会把input得到的值作为元组的一个元素,再for each in string1:时不是遍历字符串中每个字符,而是以整个字符串作为遍历的一个值。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-2-14 22:02:19 | 显示全部楼层
冬雪雪冬 发表于 2018-2-14 21:59
改为*string1,接收可变数量的参数,这时会把input得到的值作为元组的一个元素,再for each in string1:时 ...

谢谢大大  明白了   是19讲没认真看
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-3-7 16:49

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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