Python 3+ を使用してモールス信号を英語に変換したい このhttp://code.activestate.com/recipes/578407-simple-morse-code-translator-in-python/を使用して英語をモールス信号に変換できました
でもモールス信号を英語に変換したい
一度に1文字ずつやろうとしましたが、問題は、モールス符号の文字が英語の文字のように1文字の長さではないため、Eは「.」です。S は "..." です。私が抱えている問題は、辞書ループが "." を見つけることです。S i get "EE E" を取得する代わりに、スペースを検出して一度に単語を実行することでこれを修正しようとしましたが、単語内の文字を探す代わりに、単語全体を検索します辞書 Python と辞書は初めてで、E "." を区別する方法がわかりません。私の辞書を検索するときのS「...」
これが私のコードです
# defines the dictionary to convert morse to english
CODE_reversed = {'..-.': 'F', '-..-': 'X',
'.--.': 'P', '-': 'T', '..---': '2',
'....-': '4', '-----': '0', '--...': '7',
'...-': 'V', '-.-.': 'C', '.': 'E', '.---': 'J',
'---': 'O', '-.-': 'K', '----.': '9', '..': 'I',
'.-..': 'L', '.....': '5', '...--': '3', '-.--': 'Y',
'-....': '6', '.--': 'W', '....': 'H', '-.': 'N', '.-.': 'R',
'-...': 'B', '---..': '8', '--..': 'Z', '-..': 'D', '--.-': 'Q',
'--.': 'G', '--': 'M', '..-': 'U', '.-': 'A', '...': 'S', '.----': '1'}
def main():
#takes user message and makes it upper case
msg = input('MESSAGE: ')
msg = msg.upper()
addtolist = "" # creates blank string
message = [] # creates blank list
for i in msg:
addtolist = addtolist + i # adds every letter in MSG into a string until it finds a space
addtolist.upper() # makes every letter uppercase
if i == " ": # if it detects a space
message.extend(addtolist)
# adds the previously created addtolist to a list, this makes one word
addtolist = "" # clears previous variable
for i in message:
# for every word in the list
str(i) # make it into a string
print(CODE_reversed[i()]) # search the dictionary for that word
if __name__ == "__main__":
main()
このコードは単語を取り、それを辞書と照合しようとしますが、機能しません。個々のモールス符号文字を辞書と照合して検索することも試みましたが、問題は、文字がいつ開始されたかがわからないことです。で終わるので、「...」が「S」ではなく「EEE」になってしまい、これを修正する方法がわかりません
私も解決策を探してみましたが、Javaでしか見つけられず、Javaを知りません