morse-code auf Englisch Python ist3
ich konvertieren möchten, Morse-Code auf Englisch mit Python 3+
Ich habe es geschafft, zu konvertieren, Englisch, morse-code mit diesem
http://code.activestate.com/recipes/578407-simple-morse-code-translator-in-python/
Aber ich möchte konvertieren Morse-Code auf Englisch
Habe ich versucht, es zu tun eine charecter in einer Zeit, aber das problem ist, dass morse-code Briefe sind nicht 1 charecter lange wie englische Buchstaben, also E "." und S "...", das problem, das ich habe ist, dass die Wörterbuch-Schleife werden die "." und passen Sie es zu E, also anstatt S bekomme ich "E E E"
ich habe versucht, dies zu beheben, durch die Erkennung von Räumen und tun es, ein Wort in einer Zeit, aber statt zu suchen, die die Buchstaben in dem Wort durchsucht das gesamte Wort gegen das Wörterbuch
ich bin neu in Python und Wörterbücher, und ich weiß nicht, wie differeniate zwischen einem " E "." und ein S "..." bei der Suche mein Wörterbuch
Hier ist mein code
# 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()
Dieser code nimmt ein Wort, und versucht, es gegen das Wörterbuch, aber es funktioniert nicht
ich habe auch versucht, auf der Suche jedes einzelnen morse-code-Brief gegen das Wörterbuch, aber das problem ist, dass man nicht sagen kann, Wann ein Brief beginnt und endet, so "..." kommt als "EEE" anstelle von "S" und ich weiß nicht, wie man dieses Problem beheben
ich habe auch versucht, Lösungen zu suchen aber habe nur gefunden Sie in Java und ich weiß nicht, Java
". . ."
es gibt den Raum zwischen den Punkten, und Sie haben drei "."
s, aber wenn die Eingabe "..."
Sie keinen Speicherplatz haben, so haben Sie eine "..."
. Sie können dies tun, indem Sie mit der split
Methode auf die Eingabe.Es ist ein mathematisches problem, dass der code (Morse) ist nicht eine injective function. Sie haben, um zu wissen, die Zwischenräume (Pausen) zwischen die code-Elemente. en.wikipedia.org/wiki/Injective_function
InformationsquelleAutor Brandon Skerritt | 2015-08-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einmal definieren Sie die Zuordnung in eine Richtung, können Sie ein dict-comprehension, um eine Karte zu der anderen Art
Dann können Sie
join
mit einem generator-Ausdruck zur Durchführung der übersetzungen.danke!!! ich wusste, es war ein einfacher Weg, dies zu tun, python ist wirklich erstaunlich!
InformationsquelleAutor CoryKramer
Ausgabe:
InformationsquelleAutor H.R Sh