用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - python代码库

支持中文的摩斯电码加密解密

2023-04-23 作者: Python自学举报

[python]代码库

# 摩斯电码密码表
MORSE_CODE_DICT = {'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': '--..', '0': '-----', '1': '.----', '2': '..---', '3': '...--',
                   '4': '....-', '5': '.....', '6': '-....', '7': '--...', '8': '---..',
                   '9': '----.', '.': '.-.-.-', ',': '--..--', '?': '..--..',
                   '/': '-..-.', '-': '-....-', '(': '-.--.', ')': '-.--.-'}


def chinese_to_morse(chinese_str):
    # 将中文字符转换为Unicode编码
    unicode_str = chinese_str.encode('unicode_escape').decode()
    #print(unicode_str)
    morse_code = ''
    # 遍历Unicode编码中的每个字符,将其转换为摩斯电码
    for char in unicode_str:
        if char == "\\":
            morse_code += MORSE_CODE_DICT['/'] + ' '
        else:
            char_morse_code = MORSE_CODE_DICT.get(char.lower())
            if char_morse_code:
                morse_code += char_morse_code + ' '
    return morse_code


def morse_to_chinese(morse_code):
    # 将摩斯电码解码为Unicode编码
    unicode_str = ''
    morse_code_list = morse_code.split(' ')
    for morse_char in morse_code_list:
        if morse_char == '':
            continue
        char = list(MORSE_CODE_DICT.keys())[list(MORSE_CODE_DICT.values()).index(morse_char)]
        if char == '/':
            unicode_str += '\\'
        else:
            unicode_str += char
    return unicode_str.encode('utf-8').decode('unicode_escape')


print(chinese_to_morse("我爱你中国"))
print(morse_to_chinese(
    "-..-. ..- -.... ..--- .---- .---- -..-. ..- --... ..--- ...-- .---- -..-. ..- ....- ..-. -.... ----- -..-. ..- ....- . ..--- -.. -..-. ..- ..... -.... ..-. -.. "))


网友评论    (发表评论)


发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

输入口令后可复制整站源码

加载中,请稍后...