辞書(dict)オブジェクトにモールス信号リストを作成し、
入力に対応した文字列を検索して出力するものを作ってみた。
# モールス符号 「.」がトン、「-」がツー
dic = {
'.-':'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 morse(src):
result = []
for word in src.split(" "):
for char in word.split(" "):
result.append(dic[char])
result.append(" ")
return "".join(result)
print(morse('.... . .-.. .-.. --- .--. -.-- - .... --- -.'))
実行結果
HELLO PYTHON
空文字2文字で単語を区切り、空文字1文字で文字を区切りながら辞書を検索していき文字を連結させる。