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

Sie Scannen den Eingang, bis Sie in einer pause darauf hinweist nächste Zeichen. Zum Beispiel, wenn Sie eingegeben haben ". . ." 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

Schreibe einen Kommentar