基礎拉丁字母
字元 | 代碼 | 字元 | 代碼 | 字元 | 代碼 | 字元 | 代碼 | 字元 | 代碼 | 字元 | 代碼 | 字元 | 代碼 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
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 | ----- |
- |
標點符號
字元 | 代碼 | 字元 | 代碼 | 字元 | 代碼 | 字元 | 代碼 | 字元 | 代碼 | 字元 | 代碼 |
---|---|---|---|---|---|---|---|---|---|---|---|
. | ·-·-·- |
: | ---··· |
, | --··-- |
; | -·-·-· |
? | ··--·· |
= | -···- |
‘ | ·----· |
/ | -··-· |
! | -·-·-- |
– | -····- |
_ | ··--·- |
“ | ·-··-· |
( | -·--· |
) | -·--·- |
$ | ···-··- |
& | ·-··· |
@ | ·--·-· |
+ | ·-·-· |
代碼如下
codelm={} codelm['A']='01' codelm['B']='1000' codelm['C']='1010' codelm['D']='100' codelm['E']='0' codelm['F']='0010' codelm['G']='110' codelm['H']='0000' codelm['I']='00' codelm['J']='0111' codelm['K']='101' codelm['L']='0100' codelm['M']='11' codelm['N']='10' codelm['O']='111' codelm['P']='0110' codelm['Q']='1101' codelm['R']='010' codelm['S']='000' codelm['T']='1' codelm['U']='001' codelm['V']='0001' codelm['W']='011' codelm['X']='1001' codelm['Y']='1011' codelm['Z']='1100' codelm['0']='11111' codelm['1']='01111' codelm['2']='00111' codelm['3']='00011' codelm['4']='00001' codelm['5']='00000' codelm['6']='10000' codelm['7']='11000' codelm['8']='11100' codelm['9']='11110' codelm[',']='110011' codelm[';']='101010' codelm['?']='001100' codelm['=']='10001' codelm["'"]='011110' codelm['/']='10010' codelm['!']='101011' codelm['-']='100001' codelm['_']='001101' codelm['"']='010010' codelm['(']='10110' codelm[')']='101101' codelm['$']='0001001' codelm['&']='01000' codelm['@']='011010' codelm['+']='01010' codeml={} codeml['01']='A' codeml['1000']='B' codeml['1010']='C' codeml['100']='D' codeml['0']='E' codeml['0010']='F' codeml['110']='G' codeml['0000']='H' codeml['00']='I' codeml['0111']='J' codeml['101']='K' codeml['0100']='L' codeml['11']='M' codeml['10']='N' codeml['111']='O' codeml['0110']='P' codeml['1101']='Q' codeml['010']='R' codeml['000']='S' codeml['1']='T' codeml['001']='U' codeml['0001']='V' codeml['011']='W' codeml['1001']='X' codeml['1011']='Y' codeml['1100']='Z' codeml['11111']='0' codeml['01111']='1' codeml['00111']='2' codeml['00011']='3' codeml['00001']='4' codeml['00000']='5' codeml['10000']='6' codeml['11000']='7' codeml['11100']='8' codeml['11110']='9' codeml['010101']='.' codeml['111000']=':' codeml['110011']=',' codeml['101010']=';' codeml['001100']='?' codeml['10001']='=' codeml['011110']="'" codeml['10010']='/' codeml['101011']='!' codeml['100001']='-' codeml['001101']='_' codeml['010010']='"' codeml['10110']='(' codeml['101101']=')' codeml['0001001']='$' codeml['01000']='&' codeml['011010']='@' codeml['01010']='+' def l2m(str): mos='' for l in str.upper(): if l==' ':mos+=' ' else: if l in codelm: mos=mos+codelm[l]+' ' return mos[:-3].replace('1','-').replace('0','.') def m2l(mos): str='' mos=mos.replace('.','0').replace('-','1') for word in mos.split(' '): for l in word.split(' '): if l in codeml: str+=codeml[l] str+=' ' return str str=input("請輸入要傳送的句子 : ") mos=l2m(str) print(mos) str=m2l(mos) print(str)
結果
請輸入要傳送的句子 : Hello, I am Thomas .... . .-.. .-.. --- --..-- .. .- -- - .... --- -- .- ... HELLO, I AM THOMAS