<p>@Jolbas告诉我们,你必须建立一个编码器/解码器,你的问题是要将<em>中的单词明确地按字符分开</p>
<p>如果合同的文字和文字分别为单份和双份
您可以通过以下方式使用拆分:</p>
<pre><code><phrase>.split(' ') for word # 2 spaces
<word>.split(' ') for characters # 1 space
</code></pre>
<h3>点击:</h3>
<p>因此,所有这些都可以使用嵌套列表理解来完成</p>
<pre><code>[ [c for c in word] for word in phrase]
</code></pre>
<p>使用这个技巧,大部分问题都解决了</p>
<p>这是一个简洁的版本(并非所有人都喜欢嵌套理解…无论如何,它也不太糟糕)</p>
<h3>代码</h3>
<pre><code>ttm_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':' ..', '1':'. ', '2':'.. -', '3':'... ',
'4':'....-', '5':'.....', '6':'-....', '7':' ...', '8':' -..', '9':' .',
'0':' -', ', ':' .. ', '.':'.-.-.-', '?':'.. ..', '/':'-..-.', '-':'-....-',
'(':'-. .', ')':'-. .-'}
mtt_dict = {v:k for k,v in ttm_dict.items()}
question = input("Text to Morse or Morse to Text\nPlease type ttm for text to morse or type mtt for morse to text.\n")
if question == "ttm":
encrypt_q = input("What would you like have be translated to Morse Code\n")
# ' ' (single space, char separator
# ' ' (double space) word separator
morse = ' '.join([ ' '.join([ttm_dict[c] for c in word]) for word in encrypt_q.lower().split(' ')])
print(morse)
elif question == "mtt":
decrypt = input("What would you like to have be translated to English?\n")
print(' '.join([''.join([mtt_dict[c] for c in word.split(' ')]) for word in decrypt.split(' ')]))
else:
print("Invalid option")
</code></pre>
<p><strong>结果如下所示:</p>
<pre><code>Please type ttm for text to morse or type mtt for morse to text.
ttm
What would you like have be translated to Morse Code
ciao da glauco
-.-. .. .- - -.. .- . .-.. .- ..- -.-. -
Please type ttm for text to morse or type mtt for morse to text.
mtt
What would you like to have be translated to English?
-.-. .. .- - -.. .- . .-.. .- ..- -.-. -
ciao da glauco
</code></pre>