第一次个人编程作业

第一次个人编程作业

这个作业属于哪个课程 <班级的链接>(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()
posted @ 2020-02-05 15:51  大家好我叫江某某  阅读(381)  评论(3编辑  收藏