python123题目——摩尔斯电码转换

类型:列表元组

描述

摩尔斯电码(又译为摩斯密码,Morse code)是一种时通时断的信号代码,通过不同的排列顺序来表达不同的英文字母、数字和标点符号。

编写程序,把输入的英文句子转换成摩尔斯电码并输出电码字符串。

本题只需要对英文字母(不区分大小写)进行编码转换,其他字符原样输出。

下面列表中为26个英文字母对应的摩尔斯电码。

[".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.",
"---",".--.","--.-",".-.","...","-","..-","...-",".--","-..-","-.--","--.."]

示例 1

输入:

How are you?

输出:   

....---.-- .-.-.. -.-----..-?

参考答案

# def ciphertext(plaintext):
#     ls=[".-","-...","-.-.","-..",".","..-.","--.","....",
#         "..",".---","-.-",".-..","--","-.","---",".--.",
#         "--.-",".-.","...","-","..-","...-",".--","-..-","-.--","--.."]
#     plaintext = plaintext.lower()
#     letter = 'abcdefghijklmnopqrstuvwxyz'
#     for c in plaintext:
#              if c in letter:
#                        plaintext = plaintext.replace(c,ls[letter.find(c)])
#     return plaintext


# if __name__ == '__main__':
#     plaintext = input()
#     print(ciphertext(plaintext))



def ciphertext(plaintext):
    ls=[".-","-...","-.-.","-..",".","..-.","--.","....",
        "..",".---","-.-",".-..","--","-.","---",".--.",
        "--.-",".-.","...","-","..-","...-",".--","-..-","-.--","--.."]
    plaintext = plaintext.lower()                 # 字符串中所有字母转小写
    message = ''
    for c in plaintext:
        if 'a' <= c <= 'z':                       # 判定 c 是不是小写字母
            message =  message + ls[ord(c)-97]    # ord(c) 返回代表它 Unicode 码的整数,减97后落入0-25的区间
        else:
            message =  message + c                # 非小写字母时不做变换,直接拼接原字符
    return message


if __name__ == '__main__':
    plaintext = input()                          # 输入一个字符串
    print(ciphertext(plaintext))                 # 调用函数,并输出返回值
摩斯密码是一种早期的通信编码方式,通过长短音(点和划)组合来代表字母、数字和一些特殊字符。在Python中,我们可以编写一个简单的摩斯密码翻译器,它通常包含两个函数:一个是将英文字符转换摩尔斯码,另一个是反过来,将摩尔斯码解码为英文。 创建这样一个翻译器的基本步骤如下: 1. 定义一个字典,其中键是字母,值是对应的摩尔斯码。 2. 编写函数`encode_morse(text)`,遍历输入文本,查找每个字母并替换为相应的摩尔斯码。 3. 编写函数`decode_morse(morse_code)`,接收摩尔斯码字符串,将其拆分为单个字符,并根据预设的字典找到对应的文字。 下面是一个简单的示例代码: ```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 encode_morse(text): return ' '.join([MORSE_CODE_DICT[char.upper()] for char in text if char.isalpha()]) def decode_morse(morse_code): decoded_text = '' morse_chars = morse_code.split(' ') for code in morse_chars: decoded_text += ''.join([char for char, dot_dash in MORSE_CODE_DICT.items() if dot_dash == code]) * (code.count('.') + code.count('-') // 2) return decoded_text # 示例用法 text = "hello world" morse_encoded = encode_morse(text) print(f"Morse Encoded: {morse_encoded}") decoded_text = decode_morse(morse_encoded) print(f"Decoded Text: {decoded_text}") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

m0_62488776

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值