问题
So I am writing a program in python 2.7 that loops through all of the words in the English to see if the Morse code version of English word matches the unknown Morse phrase. The reason I can't just interpret it is because there are no spaces between letters. This is a snippet of the code:
def morse_solver(nol,morse,words):
#nol is the number of letters to cut down search time,morse is the Morse phrase to decode, and words is a string (or can be a list) of all english words.
lista=_index(words)
#_index is a procedure that organizes the input in the following way:[nol,[]]
selection=lista[nol-1][1]
#selects the words with that nol to loop through
for word in selection:
if morse_encode(word)==morse:
print morse+"="+word
So my Question is:
It's kinda hard to find a list of all the words in the English language and copy it over into a huge string. So is there a way or some Python module to access all the words in the English dictionary by only having to type a little bit?
If such a thing doesn't exist, how can I handle such a large string? Is there some place I can copy paste from (onto just one line)? Thanks in advance
回答1:
There is a dictionary tool for python called enchant. Check out this thread.
How to check if a word is an English word with Python?
回答2:
What fun is Morse code if you can't hear it? Let me know if this doesn't work in Python 2.7:
from winsound import Beep
from time import sleep
dot = 150 # milliseconds
dash = 300
freq = 2500 #Hertz
delay = 0.05 #delay between beeps in seconds
def transmit(morseCode):
for key in morseCode:
if key == '.':
Beep(freq,dot)
elif key == '-':
Beep(freq,dash)
else:
pass #ignore (e.g. new lines)
sleep(delay)
example = '----. ----. -... --- - - .-.. . --- ..-. -... . . .-.'
#This last is the first line of
#99 Bottles of Beer in Morse Code
#from http://99-bottles-of-beer.net/language-morse-code-406.html
transmit(example)
来源:https://stackoverflow.com/questions/31330335/can-i-access-the-english-dictionary-to-loop-through-matches-in-morse-code-if-no