飞艇冠军全天人工计划# v1.1# encode时会将非ANSII字符变为空格# decode时会跳过非ANSII字符class MorseCoder: __encode_alphabet = {“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”: “—–“, “”: “.–.-“, “-“: “-….-“, “?”: “..–..”, “/”: “-..-.”, “.”: “.-.-.-“, “@”: “.–.-.” } __decode_alphabet = dict[val, key] for key, val in __encode_alphabet.items)) # 解密对照表 def encodeself, plaintext): “””Encode AscII chars in plaintext to morse code””” charList = listplaintext.upper)) morsecodeList = \ [self.__encode_alphabet[char] if char in self.__encode_alphabet.keys) else ” ” for char in charList] return ” “.joinmorsecodeList) def decodeself, morsecode): morsecodeList = morsecode.split” “) charList = \ [self.__decode_alphabet[char] if char in self.__decode_alphabet.keys) else char for char in morsecodeList] return “”.joincharList) def get_encode_alphabetself): return self.__encode_alphabet def get_decode_alphabetself): return self.__decode_alphabetif __name__ == ‘__main__’: mc = MorseCoder) plaintext = “ALPHALAB” #需要加密的字符串 morsecode = mc.encodeplaintext) print”encode result: “, morsecode) morsecode = “thdnm #需要解密的密文 plaintext = mc.decodemorsecode) print”decode result: “, plaintext) mc.get_encode_alphabet) mc.get_decode_alphabet)
转载于:https://blog.csdn.net/xHibiki/article/details/88928419