80行代码实现简易版摩斯码编译器

@80行代码实现简易摩斯码翻译器


dict1={
                  #字母转换成摩斯码
        "A":"01","B":"1000","C":"1010","D":"100","E":"0","F":"0010","G":"001","H":"0000","I":"00","J":"0111","K":"101","L":"0100","M":"11",
        "N":"10","O":"111","P":"0110","Q":"1101","R":"010","S":"000","T":"1","U":"001","V":"0001","W":"011","X":"1001","Y":"1011","Z":"1100",
        "1":"01111","2":"00111","3":"00011","4":"00001","5":"00000","6":"10000","7":"11000","8":"11100","9":"11110","0":"11111",
        "?":"001100","/":"10010","——":"100001",".":"010101"
    }
dict2 = {
     k:v for k,v in zip(dict1.values(),dict1.keys())}       #dict1键值对互换     摩斯码转换成字母

def main():

    print("输入规范:")
    print("(0->'.')\n(1->'——')")
    print("----------------------------------------------")
    for i in range(0,1000):
        print("\n功能选择(大写字母):1.翻译摩斯码  2.生成摩斯码:")
        a = int(input())
        if a==1 or a==2:
            print("输入:")
            str = input()
            #print(str)
            #print(dict['A'])
            print("翻译结果")
            if a==2:
                transla_alpha(str)
                print('\n\n\n')
            elif a==1:
                transla_morse(str)
                print('\n\n\n')
        else:
            print("输入有误,请重新选择")
            return 0




def transla_morse(str):          # 将摩斯密码翻译成单词
    #将字符串根据空格拆分
    try:
        temp = str.split(' ')       #列表
        for i in temp:
            temp1 = ''.join(i)      #转换成字符串,准备进行切割

        #将字符串跟据"/"拆分,并存进列表
            alpha_list = temp1.split('/')
            #print(alpha_list)
            for j in alpha_list:
                print(dict2[j],end='')
            print('',end=' ')

            #print(alpha_list)
    except :
        print("输入有误,请重新选择")



def transla_alpha(str):
    try:
        word = str.split(' ')       #将句子根据空格拆分成单词
        for i in word:
            alphas = list(i)        #将单词拆分成字母
            for j in alphas:
                if j ==alphas[-1]:
                    print(dict1[j],end='')
                else:
                    print(dict1[j],end='/')
            print('',end=' ')
            #print(alpha)
    except :
        print("输入有误,程序结束")

    #print(word)






if __name__ =="__main__":
    main()

程序运行结果
80行代码实现简易版摩斯码编译器_第1张图片

代码实现的是简易版功能 BUG较多 还有很多地方等待完善

你可能感兴趣的:(python,python)