• 第一次个人编程作业


    第一次个人编程作业

    这个作业属于哪个课程 <班级的链接>(https://edu.cnblogs.com/campus/fzzcxy/SE)
    这个作业要求在哪里 <作业要求的链接>(https://edu.cnblogs.com/campus/fzzcxy/SE/homework/10283)
    这个作业的目标 发布一篇随笔,使用markdown语法进行编辑。在随笔前附上github仓库地址。
    作业正文 ....
    其他参考文献 ...

    GitHub链接:https://github.com/qq1261275789/JLY-s-software-engineering-warehouse/blob/master/第一次个人编程作业.py

    编程题目

    汉字是迄今为止持续使用时间最长的文字,也是上古时期各大文字体系中唯一传承至今者,中国历代皆以汉字为主要的官方文字。我们在感叹汉字的源远流长时,也不禁感慨,为什么没有一门使用汉字编程的语言?
    小杨同学想到:用汉字来进行编程一定很有趣,来请你帮帮他。

    编程要求

    请编写一个程序,满足以下语法要求:

    • 变量定义:整数 钱包 等于 零

    • 运算(加法):钱包 增加 四

    • 运算(减法):钱包 减少 四

    • 输出:看看 钱包 or 看看 “字符串”
      附加要求:

    • 选择:如果 钱包 大于 十 则 看看 “钱太多了” 否则 看看 “我穷死了”

    样例
    输入:

    整数 气温 等于 十
    气温 减少 三
    气温 增加 二
    看看 气温
    如果 气温 大于 八 则 看看 “你好,世界” 否则 看看 “冻死我了”
    

    输出:

    九
    你好,世界
    

    注意事项
    1.输入输出采用utf-8编码,请在编码过程中注意。
    2.数字只会出现:零一二三四五六七八九十。
    3.字符串输出的双引号是全角,即中文双引号。
    4.变量类型要求只有整数,如有余力,可以自己实现更多。、
    5.测试数据会相较于样例复杂,请考虑充分需求。
    6.不限制编程语言。

    代码行数:335行
    分析时间:看完题目基本上就大概了解啥要求了,但是后期一直改要求,可能总共花了半个小时吧
    编码时间:写的时间花的比较久,题目变要求.增加要求什么的,导致代码一直删删减减,修修改改,加上对自己代码的优化和增加功能,总共跨度3天

    一.最初的版本

    1.输入部分:
    输入的是一个一个的词,中间以空格割开,所以用split按空格切成一个数组,如果切出来的第一个词是整数,代表这句话是定义一个变量,那么将切出来的数组的第二个词(也就是中文的变量名)放进一个a中;如果第一个词是看看或者如果,也按照刚才的一样,将数组的第二个词放进a中

    def 输入():
        str=input()
        s=str.split()
        if len(s)>0:
            if s[0]=='整数':
                a[0]=s[1]
            elif s[0]=='看看' or s[0]=='如果':
                a[0]=s[1]
            else:
                a[0]=s[0]
            return s
        else:
            return None
    

    2.转换部分:
    第一个函数做的是将汉字数字转换成阿拉伯数字,第二个函数是将阿拉伯数字转换成汉字
    第一个函数:通过if和elif,把零到十转换成0-10,中途因为定义变量名语句和加减语句的数字所在的输入数组的位置不同,采取两次判断,确保将a中的数字转换

    def 转换(s):
        if len(s)<=2:
            s[1]=s[1]
        elif s[2]=='零':
            s[2]=0
        elif s[2]=='一':
            s[2]=1
        elif s[2]=='二':
            s[2]=2
        elif s[2]=='三':
            s[2]=3
        elif s[2]=='四':
            s[2]=4
        elif s[2]=='五':
            s[2]=5
        elif s[2]=='六':
            s[2]=6
        elif s[2]=='七':
            s[2]=7
        elif s[2]=='八':
            s[2]=8
        elif s[2]=='九':
            s[2]=9
        elif s[2]=='十':
            s[2]=10
        elif s[3]=='零':
            s[3]=0
        elif s[3]=='一':
            s[3]=1
        elif s[3]=='二':
            s[3]=2
        elif s[3]=='三':
            s[3]=3
        elif s[3]=='四':
            s[3]=4
        elif s[3]=='五':
            s[3]=5
        elif s[3]=='六':
            s[3]=6
        elif s[3]=='七':
            s[3]=7
        elif s[3]=='八':
            s[3]=8
        elif s[3]=='九':
            s[3]=9
        elif s[3]=='十':
            s[3]=10
        return s
    

    第二个函数:通过if和elif,把零到十转换成0-10,因为这个是用来打印结果的,数字在a中的位置固定,所以直接if和elif就行

    def 转换2():
        if a[1]==0:
            a[3]='零'
        elif a[1]==1:
            a[3]='一'
        elif a[1]==2:
            a[3]='二'
        elif a[1]==3:
            a[3]='三'
        elif a[1]==4:
            a[3]='四'
        elif a[1]==5:
            a[3]='五'
        elif a[1]==6:
            a[3]='六'
        elif a[1]==7:
            a[3]='七'
        elif a[1]==8:
            a[3]='八'
        elif a[1]==9:
            a[3]='九'
        elif a[1]==10:
            a[3]='十'
        return s
    

    3.使用部分:
    通过if判断输入的句子属于哪种语句,如果是定义变量名的语句,那么就将中文变量名放进a的第一个中,将变量的数值放在第二个;如果是加减语句,则将所对应变量的第二个取出来,与输入语句的数值进行加减运算,然后再把结果返回回a的原来位置;如果是判断大小的语句,就将a中对应的变量的第二个提取出来与输入语句的数值进行比大小,然后按照要求输出输入语句中要求的话

    def 使用(s):
        if (s[0]=='整数') and (s[2]=='等于'):
            a[0]=s[1]
    #         print(a[0])
            a[1]=s[3]
    #         print(a[1])
        if s[0]==a[0]:
            if s[1]=='减少':
                a[1]=a[1]-s[2]
    #             print(a[1])
            elif s[1]=='增加':
                a[1]=a[1]+s[2]
    #             print(a[1])
        if s[0]=='看看':
            转换2()
            print(a[3])
        if s[0]=='如果':
            if s[2]=='大于':
                if a[1]>s[3]:
                    s[6]=s[6].strip('“').strip('”')
                    print(s[6])
                else:
                    s[9]=s[9].strip('“').strip('”')
                    print(s[9])
    

    4.运行部分:
    调用上面写的函数,最后以没有输入大小,直接回车结束

    a=['',0,0,'']
    while(1):
        s=输入()
        if s!=None:
            s=转换(s)
            使用(s)
        else:
            print('结束')
            break
    
    二.第一个改良版

    1.输入部分:
    基本没变,将a变成了数组a,加入一个bls(变量数),来统计变量的个数

    def 输入():
        global bls
        str=input()
        s=str.split()
        if len(s)>0:
            if s[0]=='整数':
                a[bls][0]=s[1]
                bls=bls+1
            elif s[0]=='看看' or s[0]=='如果':
                for i in range(bls):
                    if a[i][0]==s[1]:
                        a[i][0]=s[1]
            else:
                for i in range(bls):
                    if a[i][0]==s[1]:
                        a[i][0]=s[0]
            return s
        else:
            return None
    

    2.转换部分:
    无变化

    def 转换(s):
        if len(s)<=2:
            s[1]=s[1]
        elif s[2]=='零':
            s[2]=0
        elif s[2]=='一':
            s[2]=1
        elif s[2]=='二':
            s[2]=2
        elif s[2]=='三':
            s[2]=3
        elif s[2]=='四':
            s[2]=4
        elif s[2]=='五':
            s[2]=5
        elif s[2]=='六':
            s[2]=6
        elif s[2]=='七':
            s[2]=7
        elif s[2]=='八':
            s[2]=8
        elif s[2]=='九':
            s[2]=9
        elif s[2]=='十':
            s[2]=10
        elif s[3]=='零':
            s[3]=0
        elif s[3]=='一':
            s[3]=1
        elif s[3]=='二':
            s[3]=2
        elif s[3]=='三':
            s[3]=3
        elif s[3]=='四':
            s[3]=4
        elif s[3]=='五':
            s[3]=5
        elif s[3]=='六':
            s[3]=6
        elif s[3]=='七':
            s[3]=7
        elif s[3]=='八':
            s[3]=8
        elif s[3]=='九':
            s[3]=9
        elif s[3]=='十':
            s[3]=10
        return s
    
    def 转换2(i):
        if a[i][1]==0:
            a[i][3]='零'
        elif a[i][1]==1:
            a[i][3]='一'
        elif a[i][1]==2:
            a[i][3]='二'
        elif a[i][1]==3:
            a[i][3]='三'
        elif a[i][1]==4:
            a[i][3]='四'
        elif a[i][1]==5:
            a[i][3]='五'
        elif a[i][1]==6:
            a[i][3]='六'
        elif a[i][1]==7:
            a[i][3]='七'
        elif a[i][1]==8:
            a[i][3]='八'
        elif a[i][1]==9:
            a[i][3]='九'
        elif a[i][1]==10:
            a[i][3]='十'
        return s
    

    3.使用部分:
    围绕a变成数组a进行些许调整,另外增加对未定义变量的判断,当输入语句中出现没有定义过的变量时,输出没有这个变量.

    def 使用(s):
        global bls
        global i
    #     整数 气温 等于 十
        if (s[0]=='整数') and (s[2]=='等于'):
            for i in range(bls):
                if a[i][0]==s[1]:
                    a[i][0]=s[1]
    #                 print(a[i][0])
                    a[i][1]=s[3]
    #                 print(a[i][1])
        i=0
    
    #     气温 减少 三
        for i in range(bls):
            if s[0]==a[i][0]:
                if s[1]=='减少':
                    a[i][1]=a[i][1]-s[2]
    #                 print(a[i][1])
    #             气温 增加 二
                elif s[1]=='增加':
                    a[i][1]=a[i][1]+s[2]
    #                 print(a[i][1])
        if i>=bls:
            print('没有这个变量')
        i=0
        
    #     看看 气温
        if s[0]=='看看':
            for i in range(bls):
                if s[1]==a[i][0]:
                    转换2(i)
                    print(a[i][3])
            if i>=bls:
                print('没有这个变量')
        i=0
        
    #     如果 气温 大于 八 则 看看 “你好,世界” 否则 看看 “冻死我了”
        if s[0]=='如果':
            if s[2]=='大于':
                for i in range(bls):
                    if s[1]==a[i][0]:
                        if a[i][1]>s[3]:
                            s[6]=s[6].strip('“').strip('”')
                            print(s[6])
                        else:
                            s[9]=s[9].strip('“').strip('”')
                            print(s[9])
                if i>=bls:
                    print('没有这个变量')
            elif s[2]=='小于':
                for i in range(bls):
                    if s[1]==a[i][0]:
                        if a[i][1]<s[3]:
                            s[6]=s[6].strip('“').strip('”')
                            print(s[6])
                        else:
                            s[9]=s[9].strip('“').strip('”')
                            print(s[9])
                if i>=bls:
                    print('没有这个变量')
            elif s[2]=='等于':
                for i in range(bls):
                    if s[1]==a[i][0]:
                        if a[i][0]==s[3]:
                            s[6]=s[6].strip('“').strip('”')
                            print(s[6])
                        else:
                            s[9]=s[9].strip('“').strip('”')
                            print(s[9])
                if i>=bls:
                    print('没有这个变量')
        i=0
    

    4.运行部分:
    在这里定义了全局变量bls和一个数组a,数组a每行的第一个是变量名,第二个是变量的数值的阿拉伯数字,第三个是可能需要加减的数值的阿拉伯数字,第四个是输出时转换成汉字数字的变量所代表的数值

    a=[['',0,0,''],['',0,0,''],['',0,0,''],['',0,0,''],['',0,0,''],['',0,0,''],
       ['',0,0,''],['',0,0,''],['',0,0,''],['',0,0,''],['',0,0,''],['',0,0,''],
       ['',0,0,''],['',0,0,''],['',0,0,''],['',0,0,''],['',0,0,''],['',0,0,'']]
    bls=0    #变量数
    i=0
    while(1):
        s=输入()
        if s!=None:
            s=转换(s)
            使用(s)
        else:
            print('结束')
            break
    
    三.第二次修改版

    1.输入部分:
    无变化

    def 输入():
        global bls
        str=input()
        s=str.split()
        if len(s)>0:
            if s[0]=='整数':
                a[bls][0]=s[1]
                bls=bls+1
            elif s[0]=='看看' or s[0]=='如果':
                for i in range(bls):
                    if a[i][0]==s[1]:
                        a[i][0]=s[1]
            else:
                for i in range(bls):
                    if a[i][0]==s[1]:
                        a[i][0]=s[0]
            return s
        else:
            return None
    

    2.转换部分
    转换函数无变化,转换2增加了输出负数和大于十的数的汉字转换,先判断数是负数还是零到十之间的数还是大于十的数,如果是零到十,就按之前的版本原样转换;如果是大于十的数,就先模十取余数,转换成汉字,然后再除以十,逐步将个十百千万位转换成汉字,并每转换一个汉字就插入到已经转换完成的汉字的前面,最终完成多位数的转换,叠加成一个字符串;如果是负数就先将数乘以负一,得到其绝对值,然后按照大于十的数来做,数字全部转换完成后,在前面插入一个"负"字

    def 转换(s):
        if len(s)<=2:
            s[1]=s[1]
        elif s[2]=='零':
            s[2]=0
        elif s[2]=='一':
            s[2]=1
        elif s[2]=='二':
            s[2]=2
        elif s[2]=='三':
            s[2]=3
        elif s[2]=='四':
            s[2]=4
        elif s[2]=='五':
            s[2]=5
        elif s[2]=='六':
            s[2]=6
        elif s[2]=='七':
            s[2]=7
        elif s[2]=='八':
            s[2]=8
        elif s[2]=='九':
            s[2]=9
        elif s[2]=='十':
            s[2]=10
        elif s[3]=='零':
            s[3]=0
        elif s[3]=='一':
            s[3]=1
        elif s[3]=='二':
            s[3]=2
        elif s[3]=='三':
            s[3]=3
        elif s[3]=='四':
            s[3]=4
        elif s[3]=='五':
            s[3]=5
        elif s[3]=='六':
            s[3]=6
        elif s[3]=='七':
            s[3]=7
        elif s[3]=='八':
            s[3]=8
        elif s[3]=='九':
            s[3]=9
        elif s[3]=='十':
            s[3]=10
        return s
    
    def 转换2(i):
        a[i][3]=''
        j=0
        #个位数
        if a[i][1]<=10 and a[i][1]>=0:
            if a[i][1]==0:
                a[i][3]='零'
            elif a[i][1]==1:
                a[i][3]='一'
            elif a[i][1]==2:
                a[i][3]='二'
            elif a[i][1]==3:
                a[i][3]='三'
            elif a[i][1]==4:
                a[i][3]='四'
            elif a[i][1]==5:
                a[i][3]='五'
            elif a[i][1]==6:
                a[i][3]='六'
            elif a[i][1]==7:
                a[i][3]='七'
            elif a[i][1]==8:
                a[i][3]='八'
            elif a[i][1]==9:
                a[i][3]='九'
            elif a[i][1]==10:
                a[i][3]='十'
        #大于十
        elif a[i][1]>10:
            b=a[i][1]
            for j in range(10):
                if b%10==1:
                    a[i][3]=''.join(['一',a[i][3]])
                elif b%10==2:
                    a[i][3]=''.join(['二',a[i][3]])
                elif b%10==3:
                    a[i][3]=''.join(['三',a[i][3]])
                elif b%10==4:
                    a[i][3]=''.join(['四',a[i][3]])
                elif b%10==5:
                    a[i][3]=''.join(['五',a[i][3]])
                elif b%10==6:
                    a[i][3]=''.join(['六',a[i][3]])
                elif b%10==7:
                    a[i][3]=''.join(['七',a[i][3]])
                elif b%10==8:
                    a[i][3]=''.join(['八',a[i][3]])
                elif b%10==9:
                    a[i][3]=''.join(['九',a[i][3]])
                else:
                    a[i][3]=''.join(['',a[i][3]])
                b=int(b/10)
                if b==0:
                    break
                elif b!=0:
                    if j==0:
                        a[i][3]=''.join(['十',a[i][3]])
                    elif j==1:
                        a[i][3]=''.join(['百',a[i][3]])
                    elif j==2:
                        a[i][3]=''.join(['千',a[i][3]])
                    elif j==3:
                        a[i][3]=''.join(['万',a[i][3]])
                    elif j==4:
                        a[i][3]=''.join(['十',a[i][3]])
                    elif j==5:
                        a[i][3]=''.join(['百',a[i][3]])
                    elif j==6:
                        a[i][3]=''.join(['千',a[i][3]])
                    elif j==7:
                        a[i][3]=''.join(['亿',a[i][3]])
                    elif j==8:
                        a[i][3]=''.join(['十',a[i][3]])
                    elif j==9:
                        a[i][3]=''.join(['百',a[i][3]])
                        
        #小于零
        elif a[i][1]<0:
            b=a[i][1]*(-1)
            for j in range(10):
                if b%10==1:
                    a[i][3]=''.join(['一',a[i][3]])
                elif b%10==2:
                    a[i][3]=''.join(['二',a[i][3]])
                elif b%10==3:
                    a[i][3]=''.join(['三',a[i][3]])
                elif b%10==4:
                    a[i][3]=''.join(['四',a[i][3]])
                elif b%10==5:
                    a[i][3]=''.join(['五',a[i][3]])
                elif b%10==6:
                    a[i][3]=''.join(['六',a[i][3]])
                elif b%10==7:
                    a[i][3]=''.join(['七',a[i][3]])
                elif b%10==8:
                    a[i][3]=''.join(['八',a[i][3]])
                elif b%10==9:
                    a[i][3]=''.join(['九',a[i][3]])
                else:
                    a[i][3]=''.join(['',a[i][3]])
                b=int(b/10)
                if b==0:
                    a[i][3]=''.join(['负',a[i][3]])
                    break
                elif b!=0:
                    if j==0:
                        a[i][3]=''.join(['十',a[i][3]])
                    elif j==1:
                        a[i][3]=''.join(['百',a[i][3]])
                    elif j==2:
                        a[i][3]=''.join(['千',a[i][3]])
                    elif j==3:
                        a[i][3]=''.join(['万',a[i][3]])
                    elif j==4:
                        a[i][3]=''.join(['十',a[i][3]])
                    elif j==5:
                        a[i][3]=''.join(['百',a[i][3]])
                    elif j==6:
                        a[i][3]=''.join(['千',a[i][3]])
                    elif j==7:
                        a[i][3]=''.join(['亿',a[i][3]])
                    elif j==8:
                        a[i][3]=''.join(['十',a[i][3]])
                    elif j==9:
                        a[i][3]=''.join(['百',a[i][3]])
    

    3.使用部分:
    略微修改,无大改动

    def 使用(s):
        global bls
        global i
    #     整数 气温 等于 十
        if (s[0]=='整数') and (s[2]=='等于'):
            for i in range(bls):
                if a[i][0]==s[1]:
                    a[i][0]=s[1]
    #                 print(a[i][0])
                    a[i][1]=s[3]
    #                 print(a[i][1])
            i=0
    
    #     气温 减少 三
        if s[1]=='减少':
            for i in range(bls):
                if s[0]==a[i][0]:
                    a[i][1]=a[i][1]-s[2]
    #                 print(a[i][1])
            if i>=bls:
                print('没有这个变量1')
            i=0
            
    #     气温 增加 二
        elif s[1]=='增加':
            for i in range(bls):
                if s[0]==a[i][0]:
                    a[i][1]=a[i][1]+s[2]
    #                 print(a[i][1])
            if i>=bls:
                print('没有这个变量1')
            i=0
        
    #     看看 气温
        if s[0]=='看看':
            for i in range(bls):
                if s[1]==a[i][0]:
                    转换2(i)
                    print(a[i][3])
            if i>=bls:
                print('没有这个变量2')
            i=0
        
    #     如果 气温 大于 八 则 看看 “你好,世界” 否则 看看 “冻死我了”
        if s[0]=='如果':
            if s[2]=='大于':
                for i in range(bls):
                    if s[1]==a[i][0]:
                        if a[i][1]>s[3]:
                            s[6]=s[6].strip('“').strip('”')
                            print(s[6])
                        else:
                            s[9]=s[9].strip('“').strip('”')
                            print(s[9])
                if i>=bls:
                    print('没有这个变量3')
                i=0
            
            elif s[2]=='小于':
                for i in range(bls):
                    if s[1]==a[i][0]:
                        if a[i][1]<s[3]:
                            s[6]=s[6].strip('“').strip('”')
                            print(s[6])
                        else:
                            s[9]=s[9].strip('“').strip('”')
                            print(s[9])
                if i>=bls:
                    print('没有这个变量4')
                i=0
            
            elif s[2]=='等于':
                for i in range(bls):
                    if s[1]==a[i][0]:
                        if a[i][0]==s[3]:
                            s[6]=s[6].strip('“').strip('”')
                            print(s[6])
                        else:
                            s[9]=s[9].strip('“').strip('”')
                            print(s[9])
                if i>=bls:
                    print('没有这个变量5')
                i=0
    

    4.运行部分:
    无改动

    a=[['',0,0,''],['',0,0,''],['',0,0,''],['',0,0,''],['',0,0,''],['',0,0,''],
       ['',0,0,''],['',0,0,''],['',0,0,''],['',0,0,''],['',0,0,''],['',0,0,''],
       ['',0,0,''],['',0,0,''],['',0,0,''],['',0,0,''],['',0,0,''],['',0,0,'']]
    bls=0    #变量数
    i=0
    while(1):
        s=输入()
        if s!=None:
            s=转换(s)
            使用(s)
        else:
            print('结束')
            break
    
    四.第三次修改版

    1.输入部分:
    稍微调整了一下代码,修复一些小bug

    def 输入():
        global bls
        global i
        str=input()
        s=str.split()
        if len(s)>0:
            if s[0]=='整数':
                if bls==0:
                    a[bls][0]=s[1]
                    bls=bls+1
                else:
                    for i in range(bls):
                        if a[i][0]==s[1]:
                            a[i][0]=s[1]
                            bls=bls+1
                            break
                    if (i+1)>=bls:
                        a[i+1][0]=s[1]
                        bls=bls+1
                i=0
            elif s[0]=='看看' or s[0]=='如果':
                for i in range(bls):
                    if a[i][0]==s[1]:
                        a[i][0]=s[1]
            else:
                for i in range(bls):
                    if a[i][0]==s[1]:
                        a[i][0]=s[0]
    #         print(s)
            return s
        else:
            return None
    

    2.转换部分:
    增加了输入负数和大于十的数的判断和转换

    def 转换(s):
        x=0
        if len(s)<=2:
            s[1]=s[1]
        elif s[0]=='整数' or s[0]=='如果':
            if s[3][0]=='负':
                for i in range(1,len(s[3])):
                    if s[3][i]=='一':
                        x=x+1
                    elif s[3][i]=='二':
                        x=x+2
                    elif s[3][i]=='三':
                        x=x+3
                    elif s[3][i]=='四':
                        x=x+4
                    elif s[3][i]=='五':
                        x=x+5
                    elif s[3][i]=='六':
                        x=x+6
                    elif s[3][i]=='七':
                        x=x+7
                    elif s[3][i]=='八':
                        x=x+8
                    elif s[3][i]=='九':
                        x=x+9
                    elif s[3][i]=='十' or s[3][i]=='百' or s[3][i]=='千' or s[3][i]=='万':
                        if i==1:
                            x=(x+1)*10
                        else:
                            x=x*10
                x=x*(-1)
            else:
                if s[3]=='零':
                    x=0
                else:
                    for i in range(len(s[3])):
                        if s[3][i]=='一':
                            x=x+1
                        elif s[3][i]=='二':
                            x=x+2
                        elif s[3][i]=='三':
                            x=x+3
                        elif s[3][i]=='四':
                            x=x+4
                        elif s[3][i]=='五':
                            x=x+5
                        elif s[3][i]=='六':
                            x=x+6
                        elif s[3][i]=='七':
                            x=x+7
                        elif s[3][i]=='八':
                            x=x+8
                        elif s[3][i]=='九':
                            x=x+9
                        elif s[3][i]=='十' or s[3][i]=='百' or s[3][i]=='千' or s[3][i]=='万':
                            if i==0:
                                x=(x+1)*10
                            else:
                                x=x*10
            s[3]=x
    #         print(s[3])
    #         print(s)
        elif s[1]=='减少' or s[1]=='增加':
            if s[2][0]=='负':
                for i in range(1,len(s[2])):
                    if s[2][i]=='一':
                        x=x+1
                    elif s[2][i]=='二':
                        x=x+2
                    elif s[2][i]=='三':
                        x=x+3
                    elif s[2][i]=='四':
                        x=x+4
                    elif s[2][i]=='五':
                        x=x+5
                    elif s[2][i]=='六':
                        x=x+6
                    elif s[2][i]=='七':
                        x=x+7
                    elif s[2][i]=='八':
                        x=x+8
                    elif s[2][i]=='九':
                        x=x+9
                    elif s[2][i]=='十' or s[2][i]=='百' or s[2][i]=='千' or s[2][i]=='万':
                        if i==1:
                            x=(x+1)*10
                        else:
                            x=x*10
                x=x*(-1)
            else:
                if s[2]=='零':
                    x=0
                else:
                    for i in range(len(s[2])):
                        if s[2][i]=='一':
                            x=x+1
                        elif s[2][i]=='二':
                            x=x+2
                        elif s[2][i]=='三':
                            x=x+3
                        elif s[2][i]=='四':
                            x=x+4
                        elif s[2][i]=='五':
                            x=x+5
                        elif s[2][i]=='六':
                            x=x+6
                        elif s[2][i]=='七':
                            x=x+7
                        elif s[2][i]=='八':
                            x=x+8
                        elif s[2][i]=='九':
                            x=x+9
                        elif s[2][i]=='十' or s[2][i]=='百' or s[2][i]=='千' or s[2][i]=='万':
                            if i==0:
                                x=(x+1)*10
                            else:
                                x=x*10
            s[2]=x
    #         print(s)
        return s
    
    def 转换2(i):
        a[i][3]=''
        j=0
        #个位数
        if a[i][1]<=10 and a[i][1]>=0:
            if a[i][1]==0:
                a[i][3]='零'
            elif a[i][1]==1:
                a[i][3]='一'
            elif a[i][1]==2:
                a[i][3]='二'
            elif a[i][1]==3:
                a[i][3]='三'
            elif a[i][1]==4:
                a[i][3]='四'
            elif a[i][1]==5:
                a[i][3]='五'
            elif a[i][1]==6:
                a[i][3]='六'
            elif a[i][1]==7:
                a[i][3]='七'
            elif a[i][1]==8:
                a[i][3]='八'
            elif a[i][1]==9:
                a[i][3]='九'
            elif a[i][1]==10:
                a[i][3]='十'
        #大于十
        elif a[i][1]>10:
            b=a[i][1]
            for j in range(10):
                if b%10==1:
                    a[i][3]=''.join(['一',a[i][3]])
                elif b%10==2:
                    a[i][3]=''.join(['二',a[i][3]])
                elif b%10==3:
                    a[i][3]=''.join(['三',a[i][3]])
                elif b%10==4:
                    a[i][3]=''.join(['四',a[i][3]])
                elif b%10==5:
                    a[i][3]=''.join(['五',a[i][3]])
                elif b%10==6:
                    a[i][3]=''.join(['六',a[i][3]])
                elif b%10==7:
                    a[i][3]=''.join(['七',a[i][3]])
                elif b%10==8:
                    a[i][3]=''.join(['八',a[i][3]])
                elif b%10==9:
                    a[i][3]=''.join(['九',a[i][3]])
                else:
                    a[i][3]=''.join(['',a[i][3]])
                b=int(b/10)
                if b==0:
                    break
                elif b!=0:
                    if j==0:
                        a[i][3]=''.join(['十',a[i][3]])
                    elif j==1:
                        a[i][3]=''.join(['百',a[i][3]])
                    elif j==2:
                        a[i][3]=''.join(['千',a[i][3]])
                    elif j==3:
                        a[i][3]=''.join(['万',a[i][3]])
                    elif j==4:
                        a[i][3]=''.join(['十',a[i][3]])
                    elif j==5:
                        a[i][3]=''.join(['百',a[i][3]])
                    elif j==6:
                        a[i][3]=''.join(['千',a[i][3]])
                    elif j==7:
                        a[i][3]=''.join(['亿',a[i][3]])
                    elif j==8:
                        a[i][3]=''.join(['十',a[i][3]])
                    elif j==9:
                        a[i][3]=''.join(['百',a[i][3]])
                        
        #小于零
        elif a[i][1]<0:
            b=a[i][1]*(-1)
            for j in range(10):
                if b%10==1:
                    a[i][3]=''.join(['一',a[i][3]])
                elif b%10==2:
                    a[i][3]=''.join(['二',a[i][3]])
                elif b%10==3:
                    a[i][3]=''.join(['三',a[i][3]])
                elif b%10==4:
                    a[i][3]=''.join(['四',a[i][3]])
                elif b%10==5:
                    a[i][3]=''.join(['五',a[i][3]])
                elif b%10==6:
                    a[i][3]=''.join(['六',a[i][3]])
                elif b%10==7:
                    a[i][3]=''.join(['七',a[i][3]])
                elif b%10==8:
                    a[i][3]=''.join(['八',a[i][3]])
                elif b%10==9:
                    a[i][3]=''.join(['九',a[i][3]])
                else:
                    a[i][3]=''.join(['',a[i][3]])
                b=int(b/10)
                if b==0:
                    a[i][3]=''.join(['负',a[i][3]])
                    break
                elif b!=0:
                    if j==0:
                        a[i][3]=''.join(['十',a[i][3]])
                    elif j==1:
                        a[i][3]=''.join(['百',a[i][3]])
                    elif j==2:
                        a[i][3]=''.join(['千',a[i][3]])
                    elif j==3:
                        a[i][3]=''.join(['万',a[i][3]])
                    elif j==4:
                        a[i][3]=''.join(['十',a[i][3]])
                    elif j==5:
                        a[i][3]=''.join(['百',a[i][3]])
                    elif j==6:
                        a[i][3]=''.join(['千',a[i][3]])
                    elif j==7:
                        a[i][3]=''.join(['亿',a[i][3]])
                    elif j==8:
                        a[i][3]=''.join(['十',a[i][3]])
                    elif j==9:
                        a[i][3]=''.join(['百',a[i][3]])
    

    3.使用部分:
    稍微调整,修复了一些小bug,并且模块化了一些函数

    def 定义变量(s):
        if (s[0]=='整数') and (s[2]=='等于'):
            for i in range(bls):
                if a[i][0]==s[1]:
                    a[i][0]=s[1]
    #                 print(a[i][0])
                    a[i][1]=s[3]
    #                 print(a[i][1])
                    break
            if i>=bls:
                a[i][0]=s[1]
                a[i][3]=s[3]
                
            i=0
    
    def 加减法(s):
    #     气温 减少 三
        if s[1]=='减少':
            for i in range(bls):
                if s[0]==a[i][0]:
                    a[i][1]=a[i][1]-s[2]
    #                 print(a[i][1])
            if i>=bls:
                print('没有这个变量')
            i=0
            
    #     气温 增加 二
        elif s[1]=='增加':
            for i in range(bls):
                if s[0]==a[i][0]:
                    a[i][1]=a[i][1]+s[2]
    #                 print(a[i][1])
            if i>=bls:
                print('没有这个变量')
            i=0
    
    def 打印(s):
        if s[0]=='看看':
            for i in range(bls):
                if s[1]==a[i][0]:
                    转换2(i)
                    print(a[i][3])
    #                 print(a)
            if i>=bls:
                print('没有这个变量')
            i=0
    
    def 使用(s):
        global bls
        global i
        i=0
    #     整数 气温 等于 十
        定义变量(s)
    
    #     气温 减少 三
        加减法(s)
        
    #     看看 气温
        打印(s)
        
    #     如果 气温 大于 八 则 看看 “你好,世界” 否则 看看 “冻死我了”
        if s[0]=='如果':
            if s[2]=='大于':
                for i in range(bls):
                    if s[1]==a[i][0]:
                        if a[i][1]>s[3]:
                            s[6]=s[6].strip('“').strip('”')
                            print(s[6])
                        else:
                            s[9]=s[9].strip('“').strip('”')
                            print(s[9])
                if i>=bls:
                    print('没有这个变量')
                i=0
            
            elif s[2]=='小于':
                for i in range(bls):
                    if s[1]==a[i][0]:
                        if a[i][1]<s[3]:
                            s[6]=s[6].strip('“').strip('”')
                            print(s[6])
                        else:
                            s[9]=s[9].strip('“').strip('”')
                            print(s[9])
                if i>=bls:
                    print('没有这个变量')
                i=0
            
            elif s[2]=='等于':
                for i in range(bls):
                    if s[1]==a[i][0]:
                        if a[i][0]==s[3]:
                            s[6]=s[6].strip('“').strip('”')
                            print(s[6])
                        else:
                            s[9]=s[9].strip('“').strip('”')
                            print(s[9])
                if i>=bls:
                    print('没有这个变量')
                i=0
        print(a)
    

    4.运行部分:
    无修改

    a=[['',0,0,''],['',0,0,''],['',0,0,''],['',0,0,''],['',0,0,''],['',0,0,''],
       ['',0,0,''],['',0,0,''],['',0,0,''],['',0,0,''],['',0,0,''],['',0,0,''],
       ['',0,0,''],['',0,0,''],['',0,0,''],['',0,0,''],['',0,0,''],['',0,0,'']]
    bls=0    #变量数
    i=0
    while(1):
        s=输入()
        if s!=None:
            s=转换(s)
            使用(s)
        else:
            print('结束')
            break
    
    五.第四次修改版

    1.输入部分:
    无改动

    def 输入():
        global bls
        global i
        str=input()
        s=str.split()
        if len(s)>0:
            if s[0]=='整数':
                if bls==0:
                    a[bls][0]=s[1]
                    bls=bls+1
                else:
                    for i in range(bls):
                        if a[i][0]==s[1]:
                            a[i][0]=s[1]
                            bls=bls+1
                            break
                    if (i+1)>=bls:
                        a[i+1][0]=s[1]
                        bls=bls+1
                i=0
            elif s[0]=='看看' or s[0]=='如果':
                for i in range(bls):
                    if a[i][0]==s[1]:
                        a[i][0]=s[1]
            else:
                for i in range(bls):
                    if a[i][0]==s[1]:
                        a[i][0]=s[0]
    #         print(s)
            return s
        else:
            return None
    

    2.转换部分:
    无改动

    def 转换(s):
        x=0
        if len(s)<=2:
            s[1]=s[1]
        elif s[0]=='整数' or s[0]=='如果':
            if s[3][0]=='负':
                for i in range(1,len(s[3])):
                    if s[3][i]=='一':
                        x=x+1
                    elif s[3][i]=='二':
                        x=x+2
                    elif s[3][i]=='三':
                        x=x+3
                    elif s[3][i]=='四':
                        x=x+4
                    elif s[3][i]=='五':
                        x=x+5
                    elif s[3][i]=='六':
                        x=x+6
                    elif s[3][i]=='七':
                        x=x+7
                    elif s[3][i]=='八':
                        x=x+8
                    elif s[3][i]=='九':
                        x=x+9
                    elif s[3][i]=='十' or s[3][i]=='百' or s[3][i]=='千' or s[3][i]=='万':
                        if i==1:
                            x=(x+1)*10
                        else:
                            x=x*10
                x=x*(-1)
            else:
                if s[3]=='零':
                    x=0
                else:
                    for i in range(len(s[3])):
                        if s[3][i]=='一':
                            x=x+1
                        elif s[3][i]=='二':
                            x=x+2
                        elif s[3][i]=='三':
                            x=x+3
                        elif s[3][i]=='四':
                            x=x+4
                        elif s[3][i]=='五':
                            x=x+5
                        elif s[3][i]=='六':
                            x=x+6
                        elif s[3][i]=='七':
                            x=x+7
                        elif s[3][i]=='八':
                            x=x+8
                        elif s[3][i]=='九':
                            x=x+9
                        elif s[3][i]=='十' or s[3][i]=='百' or s[3][i]=='千' or s[3][i]=='万':
                            if i==0:
                                x=(x+1)*10
                            else:
                                x=x*10
            s[3]=x
    #         print(s[3])
    #         print(s)
        elif s[1]=='减少' or s[1]=='增加':
            if s[2][0]=='负':
                for i in range(1,len(s[2])):
                    if s[2][i]=='一':
                        x=x+1
                    elif s[2][i]=='二':
                        x=x+2
                    elif s[2][i]=='三':
                        x=x+3
                    elif s[2][i]=='四':
                        x=x+4
                    elif s[2][i]=='五':
                        x=x+5
                    elif s[2][i]=='六':
                        x=x+6
                    elif s[2][i]=='七':
                        x=x+7
                    elif s[2][i]=='八':
                        x=x+8
                    elif s[2][i]=='九':
                        x=x+9
                    elif s[2][i]=='十' or s[2][i]=='百' or s[2][i]=='千' or s[2][i]=='万':
                        if i==1:
                            x=(x+1)*10
                        else:
                            x=x*10
                x=x*(-1)
            else:
                if s[2]=='零':
                    x=0
                else:
                    for i in range(len(s[2])):
                        if s[2][i]=='一':
                            x=x+1
                        elif s[2][i]=='二':
                            x=x+2
                        elif s[2][i]=='三':
                            x=x+3
                        elif s[2][i]=='四':
                            x=x+4
                        elif s[2][i]=='五':
                            x=x+5
                        elif s[2][i]=='六':
                            x=x+6
                        elif s[2][i]=='七':
                            x=x+7
                        elif s[2][i]=='八':
                            x=x+8
                        elif s[2][i]=='九':
                            x=x+9
                        elif s[2][i]=='十' or s[2][i]=='百' or s[2][i]=='千' or s[2][i]=='万':
                            if i==0:
                                x=(x+1)*10
                            else:
                                x=x*10
            s[2]=x
    #         print(s)
        return s
    
    def 转换2(i):
        a[i][3]=''
        j=0
        #个位数
        if a[i][1]<=10 and a[i][1]>=0:
            if a[i][1]==0:
                a[i][3]='零'
            elif a[i][1]==1:
                a[i][3]='一'
            elif a[i][1]==2:
                a[i][3]='二'
            elif a[i][1]==3:
                a[i][3]='三'
            elif a[i][1]==4:
                a[i][3]='四'
            elif a[i][1]==5:
                a[i][3]='五'
            elif a[i][1]==6:
                a[i][3]='六'
            elif a[i][1]==7:
                a[i][3]='七'
            elif a[i][1]==8:
                a[i][3]='八'
            elif a[i][1]==9:
                a[i][3]='九'
            elif a[i][1]==10:
                a[i][3]='十'
        #大于十
        elif a[i][1]>10:
            b=a[i][1]
            for j in range(10):
                if b%10==1:
                    a[i][3]=''.join(['一',a[i][3]])
                elif b%10==2:
                    a[i][3]=''.join(['二',a[i][3]])
                elif b%10==3:
                    a[i][3]=''.join(['三',a[i][3]])
                elif b%10==4:
                    a[i][3]=''.join(['四',a[i][3]])
                elif b%10==5:
                    a[i][3]=''.join(['五',a[i][3]])
                elif b%10==6:
                    a[i][3]=''.join(['六',a[i][3]])
                elif b%10==7:
                    a[i][3]=''.join(['七',a[i][3]])
                elif b%10==8:
                    a[i][3]=''.join(['八',a[i][3]])
                elif b%10==9:
                    a[i][3]=''.join(['九',a[i][3]])
                else:
                    a[i][3]=''.join(['',a[i][3]])
                b=int(b/10)
                if b==0:
                    break
                elif b!=0:
                    if j==0:
                        a[i][3]=''.join(['十',a[i][3]])
                    elif j==1:
                        a[i][3]=''.join(['百',a[i][3]])
                    elif j==2:
                        a[i][3]=''.join(['千',a[i][3]])
                    elif j==3:
                        a[i][3]=''.join(['万',a[i][3]])
                    elif j==4:
                        a[i][3]=''.join(['十',a[i][3]])
                    elif j==5:
                        a[i][3]=''.join(['百',a[i][3]])
                    elif j==6:
                        a[i][3]=''.join(['千',a[i][3]])
                    elif j==7:
                        a[i][3]=''.join(['亿',a[i][3]])
                    elif j==8:
                        a[i][3]=''.join(['十',a[i][3]])
                    elif j==9:
                        a[i][3]=''.join(['百',a[i][3]])
                        
        #小于零
        elif a[i][1]<0:
            b=a[i][1]*(-1)
            for j in range(10):
                if b%10==1:
                    a[i][3]=''.join(['一',a[i][3]])
                elif b%10==2:
                    a[i][3]=''.join(['二',a[i][3]])
                elif b%10==3:
                    a[i][3]=''.join(['三',a[i][3]])
                elif b%10==4:
                    a[i][3]=''.join(['四',a[i][3]])
                elif b%10==5:
                    a[i][3]=''.join(['五',a[i][3]])
                elif b%10==6:
                    a[i][3]=''.join(['六',a[i][3]])
                elif b%10==7:
                    a[i][3]=''.join(['七',a[i][3]])
                elif b%10==8:
                    a[i][3]=''.join(['八',a[i][3]])
                elif b%10==9:
                    a[i][3]=''.join(['九',a[i][3]])
                else:
                    a[i][3]=''.join(['',a[i][3]])
                b=int(b/10)
                if b==0:
                    a[i][3]=''.join(['负',a[i][3]])
                    break
                elif b!=0:
                    if j==0:
                        a[i][3]=''.join(['十',a[i][3]])
                    elif j==1:
                        a[i][3]=''.join(['百',a[i][3]])
                    elif j==2:
                        a[i][3]=''.join(['千',a[i][3]])
                    elif j==3:
                        a[i][3]=''.join(['万',a[i][3]])
                    elif j==4:
                        a[i][3]=''.join(['十',a[i][3]])
                    elif j==5:
                        a[i][3]=''.join(['百',a[i][3]])
                    elif j==6:
                        a[i][3]=''.join(['千',a[i][3]])
                    elif j==7:
                        a[i][3]=''.join(['亿',a[i][3]])
                    elif j==8:
                        a[i][3]=''.join(['十',a[i][3]])
                    elif j==9:
                        a[i][3]=''.join(['百',a[i][3]])
    

    3.使用部分:
    增加了一个如果语句中出现加减法的调用算法

    def 定义变量(s):
        if (s[0]=='整数') and (s[2]=='等于'):
            for i in range(bls):
                if a[i][0]==s[1]:
                    a[i][0]=s[1]
    #                 print(a[i][0])
                    a[i][1]=s[3]
    #                 print(a[i][1])
                    break
            if i>=bls:
                a[i][0]=s[1]
                a[i][3]=s[3]
                
            i=0
    
    def 加减法(s):
    #     气温 减少 三
        if s[1]=='减少':
            for i in range(bls):
                if s[0]==a[i][0]:
                    a[i][1]=a[i][1]-s[2]
    #                 print(a[i][1])
            if i>=bls:
                print('没有这个变量')
            i=0
            
    #     气温 增加 二
        elif s[1]=='增加':
            for i in range(bls):
                if s[0]==a[i][0]:
                    a[i][1]=a[i][1]+s[2]
    #                 print(a[i][1])
            if i>=bls:
                print('没有这个变量')
            i=0
    
    def 打印(s):
        if s[0]=='看看':
            for i in range(bls):
                if s[1]==a[i][0]:
                    转换2(i)
                    print(a[i][3])
    #                 print(a)
            if i>=bls:
                print('没有这个变量')
            i=0
    
    def 如果则(k):
        if s[k]=='看看':
            s[k+1]=s[k+1].strip('“').strip('”')
            print(s[k+1])
        elif s[k+1]=='增加' or s[k+1]=='减少':
            for j in range(3):
                b[j]=s[j+k]
            转换(b)
            加减法(b)
        elif s[k]=='无':
            k=k
    
    def 使用(s):
        global bls
        global i
        i=0
    #     整数 气温 等于 十
        定义变量(s)
    
    #     气温 减少 三
        加减法(s)
        
    #     看看 气温
        打印(s)
        
    #     如果 气温 大于 八 则 看看 “你好,世界” 否则 看看 “冻死我了”
        if s[0]=='如果':
            if s[2]=='大于':
                for i in range(bls):
                    if s[1]==a[i][0]:
                        if a[i][1]>s[3]:
                            k=5
                            如果则(k)
                                
                        else:
                            k=8
                            如果则(k)
                if i>=bls:
                    print('没有这个变量')
                i=0
            
            elif s[2]=='小于':
                for i in range(bls):
                    if s[1]==a[i][0]:
                        if a[i][1]<s[3]:
                            k=5
                            如果则(k)
                        else:
                            k=8
                            如果则(k)
                if i>=bls:
                    print('没有这个变量')
                i=0
            
            elif s[2]=='等于':
                for i in range(bls):
                    if s[1]==a[i][0]:
                        if a[i][0]==s[3]:
                            k=5
                            如果则(k)
                        else:
                            k=8
                            如果则(k)
                if i>=bls:
                    print('没有这个变量')
                i=0
    #     print(a)
    

    4.运行部分:
    无变化

    a=[['',0,0,''],['',0,0,''],['',0,0,''],['',0,0,''],['',0,0,''],['',0,0,''],
       ['',0,0,''],['',0,0,''],['',0,0,''],['',0,0,''],['',0,0,''],['',0,0,''],
       ['',0,0,''],['',0,0,''],['',0,0,''],['',0,0,''],['',0,0,''],['',0,0,'']]
    bls=0    #变量数
    i=0
    b=['','','']
    while(1):
        s=输入()
        if s!=None:
            s=转换(s)
            使用(s)
        else:
            print('结束')
            break
    
    六.第五次修改版

    1.输入部分:
    删除了一些无用代码

    def 输入():
        global bls
        global i
        str=input()
        s=str.split()
        if len(s)>0:
            return s
        else:
            return None
    

    2.转换部分:
    无改动,这一块的if,else每一个都有些许不同,所以不知道该怎么优化,怎么模块化

    def 转换(s):
        x=0
        if len(s)<=2:
            s[1]=s[1]
        elif s[0]=='整数' or s[0]=='如果':
            if s[3][0]=='负':
                for i in range(1,len(s[3])):
                    if s[3][i]=='一':
                        x=x+1
                    elif s[3][i]=='二':
                        x=x+2
                    elif s[3][i]=='三':
                        x=x+3
                    elif s[3][i]=='四':
                        x=x+4
                    elif s[3][i]=='五':
                        x=x+5
                    elif s[3][i]=='六':
                        x=x+6
                    elif s[3][i]=='七':
                        x=x+7
                    elif s[3][i]=='八':
                        x=x+8
                    elif s[3][i]=='九':
                        x=x+9
                    elif s[3][i]=='十' or s[3][i]=='百' or s[3][i]=='千' or s[3][i]=='万':
                        if i==1:
                            x=(x+1)*10
                        else:
                            x=x*10
                x=x*(-1)
            else:
                if s[3]=='零':
                    x=0
                else:
                    for i in range(len(s[3])):
                        if s[3][i]=='一':
                            x=x+1
                        elif s[3][i]=='二':
                            x=x+2
                        elif s[3][i]=='三':
                            x=x+3
                        elif s[3][i]=='四':
                            x=x+4
                        elif s[3][i]=='五':
                            x=x+5
                        elif s[3][i]=='六':
                            x=x+6
                        elif s[3][i]=='七':
                            x=x+7
                        elif s[3][i]=='八':
                            x=x+8
                        elif s[3][i]=='九':
                            x=x+9
                        elif s[3][i]=='十' or s[3][i]=='百' or s[3][i]=='千' or s[3][i]=='万':
                            if i==0:
                                x=(x+1)*10
                            else:
                                x=x*10
            s[3]=x
        elif s[1]=='减少' or s[1]=='增加':
            if s[2][0]=='负':
                for i in range(1,len(s[2])):
                    if s[2][i]=='一':
                        x=x+1
                    elif s[2][i]=='二':
                        x=x+2
                    elif s[2][i]=='三':
                        x=x+3
                    elif s[2][i]=='四':
                        x=x+4
                    elif s[2][i]=='五':
                        x=x+5
                    elif s[2][i]=='六':
                        x=x+6
                    elif s[2][i]=='七':
                        x=x+7
                    elif s[2][i]=='八':
                        x=x+8
                    elif s[2][i]=='九':
                        x=x+9
                    elif s[2][i]=='十' or s[2][i]=='百' or s[2][i]=='千' or s[2][i]=='万':
                        if i==1:
                            x=(x+1)*10
                        else:
                            x=x*10
                x=x*(-1)
            else:
                if s[2]=='零':
                    x=0
                else:
                    for i in range(len(s[2])):
                        if s[2][i]=='一':
                            x=x+1
                        elif s[2][i]=='二':
                            x=x+2
                        elif s[2][i]=='三':
                            x=x+3
                        elif s[2][i]=='四':
                            x=x+4
                        elif s[2][i]=='五':
                            x=x+5
                        elif s[2][i]=='六':
                            x=x+6
                        elif s[2][i]=='七':
                            x=x+7
                        elif s[2][i]=='八':
                            x=x+8
                        elif s[2][i]=='九':
                            x=x+9
                        elif s[2][i]=='十' or s[2][i]=='百' or s[2][i]=='千' or s[2][i]=='万':
                            if i==0:
                                x=(x+1)*10
                            else:
                                x=x*10
            s[2]=x
        return s
    
    def 转换2(i):
        a[i][3]=''
        j=0
        if a[i][1]<=10 and a[i][1]>=0:
            if a[i][1]==0:
                a[i][3]='零'
            elif a[i][1]==1:
                a[i][3]='一'
            elif a[i][1]==2:
                a[i][3]='二'
            elif a[i][1]==3:
                a[i][3]='三'
            elif a[i][1]==4:
                a[i][3]='四'
            elif a[i][1]==5:
                a[i][3]='五'
            elif a[i][1]==6:
                a[i][3]='六'
            elif a[i][1]==7:
                a[i][3]='七'
            elif a[i][1]==8:
                a[i][3]='八'
            elif a[i][1]==9:
                a[i][3]='九'
            elif a[i][1]==10:
                a[i][3]='十'
        elif a[i][1]>10:
            b=a[i][1]
            for j in range(10):
                if b%10==1:
                    a[i][3]=''.join(['一',a[i][3]])
                elif b%10==2:
                    a[i][3]=''.join(['二',a[i][3]])
                elif b%10==3:
                    a[i][3]=''.join(['三',a[i][3]])
                elif b%10==4:
                    a[i][3]=''.join(['四',a[i][3]])
                elif b%10==5:
                    a[i][3]=''.join(['五',a[i][3]])
                elif b%10==6:
                    a[i][3]=''.join(['六',a[i][3]])
                elif b%10==7:
                    a[i][3]=''.join(['七',a[i][3]])
                elif b%10==8:
                    a[i][3]=''.join(['八',a[i][3]])
                elif b%10==9:
                    a[i][3]=''.join(['九',a[i][3]])
                else:
                    a[i][3]=''.join(['',a[i][3]])
                b=int(b/10)
                if b==0:
                    break
                elif b!=0:
                    if j==0:
                        a[i][3]=''.join(['十',a[i][3]])
                    elif j==1:
                        a[i][3]=''.join(['百',a[i][3]])
                    elif j==2:
                        a[i][3]=''.join(['千',a[i][3]])
                    elif j==3:
                        a[i][3]=''.join(['万',a[i][3]])
                    elif j==4:
                        a[i][3]=''.join(['十',a[i][3]])
                    elif j==5:
                        a[i][3]=''.join(['百',a[i][3]])
                    elif j==6:
                        a[i][3]=''.join(['千',a[i][3]])
                    elif j==7:
                        a[i][3]=''.join(['亿',a[i][3]])
                    elif j==8:
                        a[i][3]=''.join(['十',a[i][3]])
                    elif j==9:
                        a[i][3]=''.join(['百',a[i][3]])
        elif a[i][1]<0:
            b=a[i][1]*(-1)
            for j in range(10):
                if b%10==1:
                    a[i][3]=''.join(['一',a[i][3]])
                elif b%10==2:
                    a[i][3]=''.join(['二',a[i][3]])
                elif b%10==3:
                    a[i][3]=''.join(['三',a[i][3]])
                elif b%10==4:
                    a[i][3]=''.join(['四',a[i][3]])
                elif b%10==5:
                    a[i][3]=''.join(['五',a[i][3]])
                elif b%10==6:
                    a[i][3]=''.join(['六',a[i][3]])
                elif b%10==7:
                    a[i][3]=''.join(['七',a[i][3]])
                elif b%10==8:
                    a[i][3]=''.join(['八',a[i][3]])
                elif b%10==9:
                    a[i][3]=''.join(['九',a[i][3]])
                else:
                    a[i][3]=''.join(['',a[i][3]])
                b=int(b/10)
                if b==0:
                    a[i][3]=''.join(['负',a[i][3]])
                    break
                elif b!=0:
                    if j==0:
                        a[i][3]=''.join(['十',a[i][3]])
                    elif j==1:
                        a[i][3]=''.join(['百',a[i][3]])
                    elif j==2:
                        a[i][3]=''.join(['千',a[i][3]])
                    elif j==3:
                        a[i][3]=''.join(['万',a[i][3]])
                    elif j==4:
                        a[i][3]=''.join(['十',a[i][3]])
                    elif j==5:
                        a[i][3]=''.join(['百',a[i][3]])
                    elif j==6:
                        a[i][3]=''.join(['千',a[i][3]])
                    elif j==7:
                        a[i][3]=''.join(['亿',a[i][3]])
                    elif j==8:
                        a[i][3]=''.join(['十',a[i][3]])
                    elif j==9:
                        a[i][3]=''.join(['百',a[i][3]])
    

    3.使用部分:
    修复了一些小问题,模块化了一个小函数

    def 定义变量(s):
        global i,bls
        if (s[0]=='整数') and (s[2]=='等于'):
            if bls==0:
                a[bls][0]=s[1]
                a[bls][1]=s[3]
                bls=bls+1
            else:
                for i in range(bls):
                    if a[i][0]==s[1]:
                        a[i][0]=s[1]
                        a[i][1]=s[3]
                        break
                if (i+1)>=bls:
                    a[i+1][0]=s[1]
                    a[i+1][1]=s[3]
                    bls=bls+1
            i=0
    
    def 加减法(s):
        global i
        if s[1]=='减少':
            for i in range(bls):
                if s[0]==a[i][0]:
                    a[i][1]=a[i][1]-s[2]
            if i>=bls:
                print('没有这个变量')
            i=0
        elif s[1]=='增加':
            for i in range(bls):
                if s[0]==a[i][0]:
                    a[i][1]=a[i][1]+s[2]
            if i>=bls:
                print('没有这个变量')
            i=0
    
    def 打印(s):
        global i
        if s[0]=='看看':
            for i in range(bls):
                if s[1]==a[i][0]:
                    转换2(i)
                    print(a[i][3])
            if i>=bls:
                print('没有这个变量')
                i=0
    
    def 如果则(k,s):
        if s[k]=='看看':
            s[k+1]=s[k+1].strip('“').strip('”')
            print(s[k+1])
        elif s[k+1]=='增加' or s[k+1]=='减少':
            for j in range(3):
                b[j]=s[j+k]
            转换(b)
            加减法(b)
        elif s[k]=='无':
            k=k
    
    def 使用(s):
        global bls
        global i
        i=0
        定义变量(s)
        加减法(s)
        打印(s)
        if s[0]=='如果':
            if s[2]=='大于':
                for i in range(bls):
                    if s[1]==a[i][0]:
                        if a[i][1]>s[3]:
                            k=5
                            如果则(k,s)
                        else:
                            k=8
                            如果则(k,s)
                if i>=bls:
                    print('没有这个变量')
                i=0
            elif s[2]=='小于':
                for i in range(bls):
                    if s[1]==a[i][0]:
                        if a[i][1]<s[3]:
                            k=5
                            如果则(k,s)
                        else:
                            k=8
                            如果则(k,s)
                if i>=bls:
                    print('没有这个变量')
                i=0
            elif s[2]=='等于':
                for i in range(bls):
                    if s[1]==a[i][0]:
                        if a[i][0]==s[3]:
                            k=5
                            如果则(k,s)
                        else:
                            k=8
                            如果则(k,s)
                if i>=bls:
                    print('没有这个变量')
                i=0
    

    4.运行部分:
    基本没变,增加了一个主函数,稍微调整了一下样子,方便查看代码

    a=[['',0,0,''],['',0,0,''],['',0,0,''],['',0,0,''],['',0,0,''],['',0,0,''],        # a[0,1,2,3]
       ['',0,0,''],['',0,0,''],['',0,0,''],['',0,0,''],['',0,0,''],['',0,0,''],        # a[0]是变量名,a[1]是输入的阿拉伯数字,
       ['',0,0,''],['',0,0,''],['',0,0,''],['',0,0,''],['',0,0,''],['',0,0,'']]        # a[2]是加减的数字,a[3]是输入的汉字数字
    bls=0    #变量数
    i=0
    b=['','','']     #加减法用的,和加减法的输入语句格式相同,b[0]是变量名,b[1]是增加或减少,b[2]是汉字数字
    
    def main():
        print('变量定义:整数 (变量名) 等于 (数字)')
        print('运算(加法):(变量名) 增加 (数字')
        print('运算(减法):(变量名) 减少 (数字)')
        print('输出:看看 (变量名) or 看看 “(字符串内容)')
        print('选择:如果 (判断语句) 则 (操作语句) 否则 (操作语句)')
        print('若否则后没有任何操作使用(无)来进行填充(参考样例2)。')
        print('回车结束')
        print('------------------------------------------------------------')
        while(1):
            s=输入()
            if s!=None:
                s=转换(s)
                使用(s)
            else:
                print('结束')
                break
    
    main()
    
    七.第六次修改版(实力有限,可能是最终版本了)

    1.输入部分:

    def 输入():
        global bls
        global i
        str=input()
        s=str.split()
        if len(s)>0:
            return s
        else:
            return None
    

    2.转换部分:
    模块化了一部分代码,并且优化了一下代码

    def 转换中的小函数(s,k,w):
        x=0
        for i in range(w,len(s[k])):
            if s[k][i]=='一':
                x=x+1
            elif s[k][i]=='二':
                x=x+2
            elif s[k][i]=='三':
                x=x+3
            elif s[k][i]=='四':
                x=x+4
            elif s[k][i]=='五':
                x=x+5
            elif s[k][i]=='六':
                x=x+6
            elif s[k][i]=='七':
                x=x+7
            elif s[k][i]=='八':
                x=x+8
            elif s[k][i]=='九':
                x=x+9
            elif s[k][i]=='十':
                if i==w:
                    x=(x+1)*10
                else:
                    x=x*10
            elif s[k][i]=='百' or s[k][i]=='千' or s[k][i]=='万':
                if i+3<len(s[k]):
                    if (s[k][i]=='万' and s[k][i+2]=='千') or (s[k][i]=='千' and s[k][i+2]=='百') or (s[k][i]=='百' and s[k][i+2]=='十'):
                        x=x*10
                    elif (s[k][i]=='万' and s[k][i+2]=='百') or (s[k][i]=='万' and s[k][i+3]=='百') or (s[k][i]=='千' and s[k][i+2]=='十') or (s[k][i]=='千' and s[k][i+3]=='十'):
                        x=x*100
                    elif (s[k][i]=='万' and s[k][i+2]=='十') or (s[k][i]=='万' and s[k][i+3]=='十'):
                        x=x*1000
                elif s[k][i]=='万' and i+5>=len(s[k]):
                    x=x*10000
                elif s[k][i]=='千' and i+4>=len(s[k]):
                    x=x*1000
                elif s[k][i]=='百' and i+3>=len(s[k]):
                    x=x*100
        return x
    
    def 汉字转数字(s):
        x=0
        if len(s)<=2:
            s[1]=s[1]
        elif s[0]=='整数' or s[0]=='如果':
            k=3
            if s[3][0]=='负':
                w=1
                x=转换中的小函数(s,k,w)
                x=x*(-1)
            else:
                if s[3]=='零':
                    x=0
                else:
                    w=0
                    x=转换中的小函数(s,k,w)
            s[3]=x
        elif s[1]=='减少' or s[1]=='增加':
            k=2
            if s[2][0]=='负':
                w=1
                x=转换中的小函数(s,k,w)
                x=x*(-1)
            else:
                if s[2]=='零':
                    x=0
                else:
                    w=0
                    x=转换中的小函数(s,k,w)
            s[2]=x
        return s
    
    def 数字转汉字(i):
        a[i][3]=''
        j=0
        if a[i][1]<=10 and a[i][1]>=0:
            if a[i][1]==0:
                a[i][3]='零'
            elif a[i][1]==1:
                a[i][3]='一'
            elif a[i][1]==2:
                a[i][3]='二'
            elif a[i][1]==3:
                a[i][3]='三'
            elif a[i][1]==4:
                a[i][3]='四'
            elif a[i][1]==5:
                a[i][3]='五'
            elif a[i][1]==6:
                a[i][3]='六'
            elif a[i][1]==7:
                a[i][3]='七'
            elif a[i][1]==8:
                a[i][3]='八'
            elif a[i][1]==9:
                a[i][3]='九'
            elif a[i][1]==10:
                a[i][3]='十'
        elif a[i][1]>10:
            b=a[i][1]
            for j in range(10):
                if b%10==1:
                    a[i][3]=''.join(['一',a[i][3]])
                elif b%10==2:
                    a[i][3]=''.join(['二',a[i][3]])
                elif b%10==3:
                    a[i][3]=''.join(['三',a[i][3]])
                elif b%10==4:
                    a[i][3]=''.join(['四',a[i][3]])
                elif b%10==5:
                    a[i][3]=''.join(['五',a[i][3]])
                elif b%10==6:
                    a[i][3]=''.join(['六',a[i][3]])
                elif b%10==7:
                    a[i][3]=''.join(['七',a[i][3]])
                elif b%10==8:
                    a[i][3]=''.join(['八',a[i][3]])
                elif b%10==9:
                    a[i][3]=''.join(['九',a[i][3]])
                b=int(b/10)
                if b==0:
                    break
                elif b!=0:
                    if b%10!=0:
                        if j==0:
                            a[i][3]=''.join(['十',a[i][3]])
                        elif j==1:
                            a[i][3]=''.join(['百',a[i][3]])
                        elif j==2:
                            a[i][3]=''.join(['千',a[i][3]])
                        elif j==3:
                            a[i][3]=''.join(['万',a[i][3]])
                        elif j==4:
                            a[i][3]=''.join(['十',a[i][3]])
                        elif j==5:
                            a[i][3]=''.join(['百',a[i][3]])
                        elif j==6:
                            a[i][3]=''.join(['千',a[i][3]])
                        elif j==7:
                            a[i][3]=''.join(['亿',a[i][3]])
                        elif j==8:
                            a[i][3]=''.join(['十',a[i][3]])
                        elif j==9:
                            a[i][3]=''.join(['百',a[i][3]])
        elif a[i][1]<0:
            b=a[i][1]*(-1)
            for j in range(10):
                if b%10==1:
                    a[i][3]=''.join(['一',a[i][3]])
                elif b%10==2:
                    a[i][3]=''.join(['二',a[i][3]])
                elif b%10==3:
                    a[i][3]=''.join(['三',a[i][3]])
                elif b%10==4:
                    a[i][3]=''.join(['四',a[i][3]])
                elif b%10==5:
                    a[i][3]=''.join(['五',a[i][3]])
                elif b%10==6:
                    a[i][3]=''.join(['六',a[i][3]])
                elif b%10==7:
                    a[i][3]=''.join(['七',a[i][3]])
                elif b%10==8:
                    a[i][3]=''.join(['八',a[i][3]])
                elif b%10==9:
                    a[i][3]=''.join(['九',a[i][3]])
                b=int(b/10)
                if b==0:
                    a[i][3]=''.join(['负',a[i][3]])
                    break
                elif b!=0:
                    if b%10!=0:
                        if j==0:
                            a[i][3]=''.join(['十',a[i][3]])
                        elif j==1:
                            a[i][3]=''.join(['百',a[i][3]])
                        elif j==2:
                            a[i][3]=''.join(['千',a[i][3]])
                        elif j==3:
                            a[i][3]=''.join(['万',a[i][3]])
                        elif j==4:
                            a[i][3]=''.join(['十',a[i][3]])
                        elif j==5:
                            a[i][3]=''.join(['百',a[i][3]])
                        elif j==6:
                            a[i][3]=''.join(['千',a[i][3]])
                        elif j==7:
                            a[i][3]=''.join(['亿',a[i][3]])
                        elif j==8:
                            a[i][3]=''.join(['十',a[i][3]])
                        elif j==9:
                            a[i][3]=''.join(['百',a[i][3]])
    

    3.使用部分:
    修复了一些小bug

    def 定义变量(s):
        global i,bls
        if (s[0]=='整数') and (s[2]=='等于'):
            if bls==0:
                a[bls][0]=s[1]
                a[bls][1]=s[3]
                bls=bls+1
            else:
                for i in range(bls):
                    if a[i][0]==s[1]:
                        a[i][1]=s[3]
                        break
                if (i+1)>=bls:
                    if a[i][0]!=s[1]:
                        a[i+1][0]=s[1]
                        a[i+1][1]=s[3]
                        bls=bls+1
            i=0
    
    def 加减法(s):
        global i
        if s[1]=='减少':
            for i in range(bls):
                if s[0]==a[i][0]:
                    a[i][1]=a[i][1]-s[2]
            if i>=bls:
                print('没有这个变量')
            i=0
        elif s[1]=='增加':
            for i in range(bls):
                if s[0]==a[i][0]:
                    a[i][1]=a[i][1]+s[2]
            if i>=bls:
                print('没有这个变量')
            i=0
    
    def 打印(s):
        global i
        if s[0]=='看看':
            for i in range(bls):
                if s[1]==a[i][0]:
                    数字转汉字(i)
                    print(a[i][3])
            if i>=bls:
                print('没有这个变量')
                i=0
    
    def 如果则(k,s):
        if s[k]=='看看':
            s[k+1]=s[k+1].strip('“').strip('”')
            print(s[k+1])
        elif s[k+1]=='增加' or s[k+1]=='减少':
            for j in range(3):
                b[j]=s[j+k]
            汉字转数字(b)
            加减法(b)
        elif s[k]=='无':
            k=k
    
    def 使用(s):
        global bls
        global i
        i=0
        定义变量(s)
        加减法(s)
        打印(s)
        if s[0]=='如果':
            if s[2]=='大于':
                for i in range(bls):
                    if s[1]==a[i][0]:
                        if a[i][1]>s[3]:
                            k=5
                            如果则(k,s)
                                
                        else:
                            k=8
                            如果则(k,s)
                if i>=bls:
                    print('没有这个变量')
                i=0
            elif s[2]=='小于':
                for i in range(bls):
                    if s[1]==a[i][0]:
                        if a[i][1]<s[3]:
                            k=5
                            如果则(k,s)
                        else:
                            k=8
                            如果则(k,s)
                if i>=bls:
                    print('没有这个变量')
                i=0
            elif s[2]=='等于':
                for i in range(bls):
                    if s[1]==a[i][0]:
                        if a[i][0]==s[3]:
                            k=5
                            如果则(k,s)
                        else:
                            k=8
                            如果则(k,s)
                if i>=bls:
                    print('没有这个变量')
                i=0
    

    4.运行部分:

    a=[['',0,0,''],['',0,0,''],['',0,0,''],['',0,0,''],['',0,0,''],['',0,0,''],        # a[0,1,2,3]
       ['',0,0,''],['',0,0,''],['',0,0,''],['',0,0,''],['',0,0,''],['',0,0,''],        # a[0]是变量名,a[1]是输入的阿拉伯数字,
       ['',0,0,''],['',0,0,''],['',0,0,''],['',0,0,''],['',0,0,''],['',0,0,'']]        # a[2]是加减的数字,a[3]是输入的汉字数字
    bls=0    #变量数
    i=0
    b=['','','']     #加减法用的,和加减法的输入语句格式相同,b[0]是变量名,b[1]是增加或减少,b[2]是汉字数字
    
    def main():
        print('变量定义:整数 (变量名) 等于 (数字)')
        print('运算(加法):(变量名) 增加 (数字')
        print('运算(减法):(变量名) 减少 (数字)')
        print('输出:看看 (变量名) or 看看 “(字符串内容)')
        print('选择:如果 (判断语句) 则 (操作语句) 否则 (操作语句)')
        print('若否则后没有任何操作使用(无)来进行填充(参考样例2)。')
        print('回车结束')
        print('------------------------------------------------------------')
        while(1):
            s=输入()
            if s!=None:
                s=汉字转数字(s)
                使用(s)
            else:
                print('结束')
                break
    
    main()
    
  • 相关阅读:
    Android学习第三天
    Android学习第二天(从零开始手动创建项目)
    【k8s】Pod-containers
    【k8s】Pod-Guaranteed
    【k8s】Pod-Burstable
    【k8s】Pod-BestEffort
    【k8s】Pod-qosClass
    【k8s】Pod-readinessGates
    【k8s】Pod-containerStatuses
    【k8s】Pod-conditions
  • 原文地址:https://www.cnblogs.com/qq1261275789/p/12264130.html
Copyright © 2020-2023  润新知