@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()
程序运行结果
代码实现的是简易版功能 BUG较多 还有很多地方等待完善