forked from TrueFit/MorseCode
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtranslate.py
More file actions
41 lines (36 loc) · 717 Bytes
/
translate.py
File metadata and controls
41 lines (36 loc) · 717 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import re
pattern = re.compile(r"^[\.-]+(\|\|[\.-]+)*(\|\|\|\|[\.-]+(\|\|[\.-]+)*)*$")
alpha = {
".-": "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",
"||": "",
"": " ",
}
def translate(code: str):
if not bool(pattern.match(code)):
raise Exception("Invalid Morse Code!")
return "".join(alpha[x] for x in code.split("||"))