class Morse:
TABLE = {'A':'iI', 'B':'Iiii', 'C':'IiIi', 'D':'Iii',
'E':'i', 'F':'iiIi', 'G':'IIi', 'H':'iiii',
'I':'ii', 'J':'iIII', 'K':'IiI', 'L':'iIii',
'M':'II', 'N':'Ii', 'O':'III', 'P':'iIIi',
'Q':'IIiI', 'R':'iIi', 'S':'iii', 'T':'I',
'U':'iiI', 'V':'iiiI', 'W':'iII', 'X':'IiiI',
'Y':'IiII', 'Z':'IIii',
'1':'iIIII', '2':'iiIII', '3':'iiiII', '4':'iiiiI',
'5':'iiiii', '6':'Iiiii', '7':'IIiii', '8':'IIIii',
'9':'IIIIi', '0':'IIIII',
'.': 'iIiIiI', ',': 'IIiiII', ':': 'IIIiii', '?': 'iiIIii',
"'":'iIIIIi', '-': 'IiiiiI', '(': 'IiIIi', ')': 'IiIIiI',
'/':'IiiIi', '=': 'IiiiI', '+': 'iIiIi', '"': 'iIiiIi',
'@': 'iIIiIi'}
RTABLE = dict(map(lambda(k,v):(v,k), TABLE.items()))
def encode(self, s):
return ' '.join(map((lambda x: self.TABLE[x]), list(s.upper())))
def decode(self, s):
return ''.join(map((lambda x: self.RTABLE[x]), s.split()))
morse = Morse()
def decode_morse(s):
return morse.decode(s)
def encode_morse(s):
return morse.encode(s)
if __name__ == '__main__':
morse = Morse()
code = morse.encode('Hello,World.')
print code
print morse.decode(code)