摩斯电码(Morse Code

📘 一、什么是摩斯电码?

摩斯电码是一种利用点(.)和划(-)组成的编码方式,用于表示文本信息。最初设计用于电报通信,现常用于航空、求救信号(如 “SOS”)、无线通信等场合。


🧠 二、编码原理

  • 每个字母和数字由一组点和划构成:
    • 点(.):短信号
    • 划(-):长信号
  • 字符间用空格分隔
  • 单词间用 / 分隔

✅ 示例对应表:

字符 摩斯码
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 –..

🔨 编码过程(英文 → 摩斯)

示例:编码 I LOVE YOU

  1. 将字母大写(摩斯电码不区分大小写)
  2. 查表获取每个字母的摩斯表示
  3. 用空格分隔字符,用 / 分隔单词

结果:

I → ..
LOVE → .-.. — …- .
YOU → -.– — ..-
最终结果:.. / .-.. — …- . / -.– — ..-


🔓解码过程(摩斯 → 英文)

示例:解码 .... . .-.. .-.. ---

  1. 按空格分隔字符,按 / 分隔单词
  2. 查表反向翻译每组摩斯码
  3. 拼接结果字符串

结果:

…. → H
. → E
.-.. → L
.-.. → L
— → O
输出:HELLO


🐍 五、Python 代码实现

1️⃣ 英文 → 摩斯(编码)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
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': '--..','1': '.----','2': '..---','3': '...--','4': '....-',
'5': '.....','6': '-....','7': '--...','8': '---..','9': '----.',
'0': '-----',' ': '/'
}

def encode_morse(text):
return ' '.join(MORSE_CODE_DICT.get(ch.upper(), '') for ch in text)
REVERSE_DICT = {v: k for k, v in MORSE_CODE_DICT.items()}
def decode_morse(code):
return ' '.join(
''.join(REVERSE_DICT.get(c, '') for c in word.split())
for word in code.split(' / '))
print(encode_morse("HELLO WORLD"))
print(decode_morse('.... . .-.. .-.. --- / .-- --- .-. .-.. -..'))

http://example.com/2025/06/03/编码基础-jsfuck/
Aŭtoro
fox
Postigita
June 3, 2025
Lizenta