鱼C论坛

 找回密码
 立即注册
查看: 1930|回复: 3

[已解决]20讲动动手0的程序问题

[复制链接]
发表于 2017-6-26 15:35:53 | 显示全部楼层 |阅读模式

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

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

x
写了那个程序,但是总是有问题,也改不出来,希望大神可以指点一下,代码比较冗长,用笨办法做的

def fun1(x):
    a=0
    b=0
    c=0
    d=0
    e=0
    f=0
    g=0
    h=0
    i=0
    j=0
    k=0
    l=0
    m=0
    n=0
    o=0
    p=0
    q=0
    lenth=len(x)
    y=[]
    for i in range(lenth):
        if x[i].isalnum()==0:
            if x[i]=='~':
                a+=1
            elif x[i]=='!':
                b+=1
            elif x[i]=='@':
                c+=1
            elif x[i]=='$':
                e+=1
            elif x[i]=='%':
                f+=1
            elif x[i]=='^':
                g+=1
            elif x[i]=='&':
                h+=1
            elif x[i]=='*':
                i+=1
            elif x[i]=='(':
                j+=1
            elif x[i]==')':
                k+=1
            elif x[i]=='_':
                l+=1
            elif x[i]=='+':
                m+=1
            elif x[i]=='[':
                n+=1
            elif x[i]==']':
                o+=1
            elif x[i]=='{':
                p+=1
            elif x[i]=='}':
                q+=1
            elif x[i]=='#':
                d+=1
        else :
            y.append(x[i])

    print('数组中~的数量有 %d ,!的数量有 %d ,@的数量有 %d ,#的数量有 %d ,$的数量有 %d ,%的数量有 %d ,^的数量有 %d ,&的数量有 %d ,*的数量有 %d ,(的数量有 %d ,)的数量有 %d ,_的数量有 %d ,+的数量有 %d ,[的数量有 %d ,]的数量有 %d ,{的数量有 %d ,}的数量有 %d 。' % (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q))
    print(y)

str1=''' 小甲鱼的那个字符串 '''
list1=list(str1)
fun1(list1)
               
最佳答案
2017-6-26 16:27:56
本帖最后由 ButcherRabbit 于 2017-6-26 16:37 编辑

确实是笨办法,但要加油哦。。要不来我们群吧

有一个问题:print('%d,%d,%%这里%d'%(a,b,c)),  这种但引号里有要正常打印的%时,要对%进行转义前面加个%号即可,即%%



def fun1(x):
    a=0
    b=0
    c=0
    d=0
    e=0
    f=0
    g=0
    h=0
    i=0
    j=0
    k=0
    l=0
    m=0
    n=0
    o=0
    p=0
    q=0
    lenth=len(x)
    y=[]
    for i in range(lenth):
        if x.isalnum()==0:
            if x=='~':
                a+=1
            elif x=='!':
                b+=1
            elif x=='@':
                c+=1
            elif x=='$':
                e+=1
            elif x=='%':
                f+=1
            elif x=='^':
                g+=1
            elif x=='&':
                h+=1
            elif x=='*':
                i+=1
            elif x=='(':
                j+=1
            elif x==')':
                k+=1
            elif x=='_':
                l+=1
            elif x=='+':
                m+=1
            elif x=='[':
                n+=1
            elif x==']':
                o+=1
            elif x=='{':
                p+=1
            elif x=='}':
                q+=1
            elif x=='#':
                d+=1
        else :
            y.append(x)

    print('数组中~的数量有 %d ,!的数量有 %d ,@的数量有 %d ,#的数量有 %d ,$的数量有 %d ,%的数量有 %d ,^的数量有 %d ,&的数量有 %d ,*的数量有 %d ,(的数量有 %d ,)的数量有 %d ,_的数量有 %d ,+的数量有 %d ,[的数量有 %d ,]的数量有 %d ,{的数量有 %d ,}的数量有 %d 。' % (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q))
    print(y)

str1=''' 小甲鱼的那个字符串 '''
list1=list(str1)
fun1(list1)

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-6-26 15:58:16 | 显示全部楼层
你这个嵌套关系有问题呀,isalnum()判断的是数字和26个字母
向底下这种乱七八糟的符号是不属于alnum的
  1. >>> '~'.isalnum()
  2. False
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-6-26 16:07:36 | 显示全部楼层
关系太乱了,而且字符串本身有.count方法,不需要这种方式来统计。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-6-26 16:27:56 | 显示全部楼层    本楼为最佳答案   
本帖最后由 ButcherRabbit 于 2017-6-26 16:37 编辑

确实是笨办法,但要加油哦。。要不来我们群吧

有一个问题:print('%d,%d,%%这里%d'%(a,b,c)),  这种但引号里有要正常打印的%时,要对%进行转义前面加个%号即可,即%%



def fun1(x):
    a=0
    b=0
    c=0
    d=0
    e=0
    f=0
    g=0
    h=0
    i=0
    j=0
    k=0
    l=0
    m=0
    n=0
    o=0
    p=0
    q=0
    lenth=len(x)
    y=[]
    for i in range(lenth):
        if x.isalnum()==0:
            if x=='~':
                a+=1
            elif x=='!':
                b+=1
            elif x=='@':
                c+=1
            elif x=='$':
                e+=1
            elif x=='%':
                f+=1
            elif x=='^':
                g+=1
            elif x=='&':
                h+=1
            elif x=='*':
                i+=1
            elif x=='(':
                j+=1
            elif x==')':
                k+=1
            elif x=='_':
                l+=1
            elif x=='+':
                m+=1
            elif x=='[':
                n+=1
            elif x==']':
                o+=1
            elif x=='{':
                p+=1
            elif x=='}':
                q+=1
            elif x=='#':
                d+=1
        else :
            y.append(x)

    print('数组中~的数量有 %d ,!的数量有 %d ,@的数量有 %d ,#的数量有 %d ,$的数量有 %d ,%的数量有 %d ,^的数量有 %d ,&的数量有 %d ,*的数量有 %d ,(的数量有 %d ,)的数量有 %d ,_的数量有 %d ,+的数量有 %d ,[的数量有 %d ,]的数量有 %d ,{的数量有 %d ,}的数量有 %d 。' % (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q))
    print(y)

str1=''' 小甲鱼的那个字符串 '''
list1=list(str1)
fun1(list1)

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-21 18:36

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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