だから、これが私の英語-モールス翻訳者のために持っているものです(これはうまくいきます):
english = {'.-': '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',
'-----': '0', '.----': '1', '..---': '2',
'...--': '3', '....-': '4', '.....': '5',
'-....': '6', '--...': '7', '---..': '8',
'----.': '9', ' ': ' '}
print ("""
================================================================================
English to Morse Code Translator
================================================================================""")
time.sleep(2)
while True:
msg = input('''What would you like translated? please use lower-case letters.\n :''')
print ("")
for i in msg:
print(morse[i])
userstatus = input('Would you like to go again?(y or n): ').lower().strip(' ')
if userstatus not in('y', 'yes'):
print ("Have a nice day!")
break
これで問題なく動作します。私が問題を抱えているのは、モールス英語の翻訳者です。
morse = {'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': '--..',
'0': '-----', '1': '.----', '2': '..---',
'3': '...--', '4': '....-', '5': '.....',
'6': '-....', '7': '--...', '8': '---..',
'9': '----.', ' ': ' '}
print ("""
================================================================================
Morse to English Code Translator
================================================================================""")
time.sleep(2)
while True:
msg = input('''What would you like translated?
:''')
print ("")
for i in msg:
print(english[i])
userstatus = input('Would you like to go again?(y or n): ').lower().strip(' ')
if userstatus not in('y', 'ye', 'yes'):
print ("Have a nice day!")
break
ans = input('''英語からモールス語にするには 1 を押してください\nモリスから英語にするには 2 を押してください:''')
これで私が抱えている問題は、「-- --- .-. ... .」などのモールス符号の行を入力すると、次のように出力されることです。
What would you like translated?
:-- --- .-. ... .
t
t
t
t
t
e
t
e
e
e
e
e
Would you like to go again?(y or n):
これを修正して、tまたはeだけでなく、この場合はモールスという単語を出力する方法を知っている人はいますか?