Python,摩尔斯电码相关题目

3、莫尔斯电码采用了短脉冲和长脉冲(分别为点和点划线)来编码字母( 例如,字母"A”是点划线,“B”是点点点),如下所示:

A.-B...C -.-. D-..E.F..-.G -. .....

J.-- K -- L.-..M--N-.0-P.-.

Q -.-R.-..T.U..-V ..-w .-

X-..-Y-.-Z-..

1)创建字典,将字符映射到莫尔斯电码。

2)输入- -段英文,变换成莫尔斯电文。

3)输入一段莫尔斯电文,翻译成英文。

参考

代码可这样写:

morses = {"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": "--.."}
s='Hello'
res=''.join([morses[x.lower()] for x in s])
t='--- -.-'
ori=[]
for x in t.split():
    for k,v in morses.items():
        if morses[k]==x:
            ori.append(k)

res1=''.join(ori)
print(res)
print(res1)
......-...-..---
ok

如有帮助,请采纳。点击我回答右上角【采纳】按钮。