-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathmorse.py
98 lines (83 loc) · 1.95 KB
/
morse.py
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
alphabet_to_morse = {
"0": "-----",
"1": ".----",
"2": "..---",
"3": "...--",
"4": "....-",
"5": ".....",
"6": "-....",
"7": "--...",
"8": "---..",
"9": "----.",
"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": "--..",
".": ".-.-.-",
",": "--..--",
":": "---...",
";": "-.-.-.",
"?": "..--..",
"-": "-....-",
"_": "..--.-",
"(": "-.--.",
")": "-.--.-",
"'": ".----.",
"=": "-...-",
"+": ".-.-.",
"/": "-..-.",
"@": ".--.-.",
" ": " ",
"" : ""
}
morse_to_alphabet = {v: k for k, v in alphabet_to_morse.iteritems()}
def removeunusablecharacters(uncorrected_string):
return filter(lambda char: char in alphabet_to_morse, uncorrected_string.upper())
def encode(decoded):
morsestring = []
decoded = removeunusablecharacters(decoded)
decoded = decoded.upper()
words = decoded.split(" ")
for word in words:
letters = list(word)
morseword = []
for letter in letters:
morseletter = alphabet_to_morse[letter]
morseword.append(morseletter)
word = "/".join(morseword)
morsestring.append(word)
return " ".join(morsestring)
def decode(encoded):
characterstring = []
words = encoded.split(" ")
for word in words:
letters = word.split("/")
characterword = []
for letter in letters:
characterletter = morse_to_alphabet[letter]
characterword.append(characterletter)
word = "".join(characterword)
characterstring.append(word)
return " ".join(characterstring)