EtTtetEetEeTeteTetTeeeEteTttEttTeEeteTttTeetEtttEetTtEtteEeeTttEeetEEteTEeee
EEteeEtTteeTettTeeTttTteEtetet
大文字を区切り位置、「e」を「・」に「t」を「−」に変換して、得られるモールス信号をアルファベットに変換しました。
ちなみに、モールス符号で、「e」は「・」、「t」は「−」になっているようです。(^_^;
● ET_Message1.py
# coding: UTF-8 # ET_Message1.py from time import time # モールス符号の辞書 dict = { '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':'--・・', '.':'・-・-・-' } ##print(dict); exit() # 復号 def deCrypt(src): s = src.replace('E','|e').replace('T','|t')+'|' # '|'で区切る s = s.replace('e','・').replace('t','-') # 'e'→'・', 't'→'-' ## print(s) for c in dict.keys(): # 符号をアルファベットに変換 s = s.replace('|'+dict[c]+'|','|'+c+'|') s = s.replace('|','') # 区切りをはずす return s # 暗号化 def enCrypt(src): s = src.upper() # 文字列を大文字に変換する for c in dict.keys(): # アルファベットを符号に変換 s = s.replace(c,'|'+dict[c]) # 区切りも前に付ける ## print(s) s = s.replace('・','e').replace('-','t') # '・'→'e', '-'→'t' s = s.replace('|e','E').replace('|t','T') # 区切りの位置を大文字化 s = s.replace(' ','') # 半角スペース' 'を除去 return s def main(): tm = time() # Timer Start # メッセージ s = 'EtTtetEetEeTeteTetTeeeEteTttEttTeEeteTttTeetEtttEetTt'\ 'EtteEeeTttEeetEEteTEeeeEEteeEtTteeTettTeeTttTteEtetet' t = deCrypt(s) print(t) t = enCrypt(t) ## print(t) print(s==t) # 検算のため逆変換して同じものになるか調べる print("Runtime : %.3f [sec]"%(time()-tm)) # Timer Stop & Disp if __name__ == '__main__': main()
●実行結果
AQUICKBROWNFOXJUMPSOVERTHELAZYDOG. True Runtime : 0.000 [sec]
※参考URL
●モールス符号 - Wikipedia
●誰でもできる!モールス信号の簡単な覚え方【語呂合わせ】 - NAVER
●The quick brown fox jumps over the lazy dog - Wikipedia