1:最好不要用关键字
2:字典里最后一个是不需要逗号的
使用print(val,',',end='')的时候val与,之间会有一个空格,所以你后面找的是'--. ',尾部多一个空格
这个是我刚才写的,可以运行
程序代码:
code = {'A': '.-', 'B': '-...', 'C': '-.-.',
'D': '-..', 'E': '.', 'F': '..-.',
'G': '--.', 'H': '....', 'I': '..',
'J': '.---', 'K': '-.-', 'L': '.-..',
'M': '--', 'N': '-.', 'O': '---', 'P': '.--.',
'Q': '--.-', 'R': '.-.', 'S': '...', 'T': '-',
'U': '..-', 'V': '...-', 'W': '.--', 'X': '-..-',
'Y': '-.--', 'Z': '--..',
'1': '.----', '2': '..---', '3': '...--',
'4': '....-', '5': '.....', '6': '-....',
'7': '--...', '8': '---..', '9': '----.',
'0': '-----'
}
# 反转键值
code2 = {value:key for key,value in code.items()}
mode = input('选择模式,0=加密,1=解密')
if mode == '0':
text = input('请输入一串文字:')
for c in text:
morse = code[c.upper()]
print(morse,'/',end='')
elif mode == '1':
text = input('请输入一段字符:')
# 清除空字符
# print(morse,'/',end='')会在morse和'/'之间添加一个空格
text = text.replace(' ','')
# 以/分隔
for c in text.split('/'):
# 筛除空字符,当输入最后为/时候,不要忘记后面还有个空
if c != '':
print(code2[c],'/',end='')