刚学了摩斯密码,自己用python写一遍,顺便练习python,下面直接粘贴代码
'''
摩斯密码加解密
加密后生成一个列表
同样,解密也需要输入一个列表
'''
#生成加密字典
mos_dict ={'0': '- - - - -', '1': '.- - - -', '2': '..- - -', '3': '...- -', '4': '....-', '5': '.....', '6': '- ....', '7': '- - ...',
'8': '- - - ..', '9': '- - - - .', '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': '- - ..',
'.': '.- .- .-', ',': '- - ..- -', ';': '- .- .- .', '?': '..- - ..', '!': '- .- .- -', '(': '- .- - .', ')': '- .- - .-',
'$': '...- ..-', '&': '....', '@': '.- - .- .'}
#生成解密字典
dmos_dict = {'- - - - -': '0', '.- - - -': '1', '..- - -': '2', '...- -': '3', '....-': '4', '.....': '5', '- ....': '6', '- - ...': '7',
'- - - ..': '8', '- - - - .': '9', '-': 'T', '- ..': 'D', '- .- .': 'C', '.': 'E', '..- .': 'F', '- - .': 'G', '...': 'S',
'..': 'I', '.- - -': 'J', '- .-': 'K', '.- ..': 'L', '- -': 'M', '- .': 'N', '- - -': 'O', '.- - .': 'P', '- - .-': 'Q',
'.- .': 'R', '..-': 'U', '...-': 'V', '.- -': 'W', '- ..-': 'X', '- .- -': 'Y', '- - ..': 'Z', '.- .- .-': '.', '- - ..- -': ',',
'- .- .- .': ';', '..- - ..': '?', '- .- .- -': '!', '- .- - .': '(', '- .- - .-': ')', '...- ..-': '$', '....': '&',
'.- - .- .': '@'}
def encryption(plaintext):
ciphertext = []
for i in plaintext:
ciphertext.append(mos_dict[i])
# ciphertext = ''.join(ciphertext)
# 获得的是一个列表
print(f'密文为{ciphertext}')
def decryption(ciphertext):
plaintext = []
for i in ciphertext:
plaintext.append(dmos_dict[i])
print(f'明文为{plaintext}')
if __name__ == '__main__':
enter = 1
#加密
if enter == 0:
plaintext = input('请输入明文: ').upper()
# plaintext = 'qingyu'.upper() #测试代码
encryption(plaintext)
# 解密
if enter == 1:
# ciphertext = ['- - .-', '..', '- .', '- - .', '- .- -', '..-']
ciphertext = input('请输入密文: ') #要求输入列表
decryption(ciphertext)