Alfabet Morse'a istnieje od początku XIX wieku i trafił do ery cyfrowej. Od służenia jako krytyczne medium komunikacyjne podczas II wojny światowej po wysyłanie zaszyfrowanych wiadomości w lotnictwie i marynarce, alfabet Morse'a pozostanie na zawsze.
Jeśli nie znasz tego fascynującego języka, przygotuj się nie tylko na odkrycie alfabetu Morse'a, ale także na zbudowanie własnego tłumacza za pomocą Pythona.
Co to jest alfabet Morse'a?
Kod Morse'a to metoda komunikacji, w której znaki tekstowe są kodowane w standardową sekwencję dwóch sygnałów o różnym czasie trwania, oznaczonych kropkami i kreskami. Kod Morse'a bierze swoją nazwę od Samuela Morse'a, jednego z wynalazców telegrafu. Możesz go zapamiętać i przekazać za pomocą fal dźwiękowych lub światła widzialnego odbieranego ludzkimi zmysłami.
Długość ekwiwalentu alfabetu Morse'a jest odwrotna do naszej częstotliwości używania tego alfabetu i widać, że alfabet Morse'a przypisuje najczęstszą literę w języku angielskim, E, tylko do kropki.
Możesz użyć tych bezpłatne oprogramowanie i aplikacje obsługujące alfabet Morse'a do wysyłania zakodowanych wiadomości do siebie. Z drugiej strony nauka alfabetu Morse'a jest dość prosta i można się jej nauczyć w ciągu miesiąca przy sporej ilości ćwiczeń. Aby pomóc Ci zacząć, oto one dziewięć stron do nauki alfabetu Morse'a za darmo.
Jak zbudować tłumacza alfabetu Morse'a za pomocą Pythona
Zacznij od zdefiniowania słownika Pythona o nazwie MORSE_CODE_DICT do przechowywania wartości kodu Morse'a. Klawisze będą literami alfabetu angielskiego, z odpowiednią sekwencją kropek lub kresek jako odpowiednią wartością. Korzystając ze słownika, możesz szybko wyszukać dowolny klucz do odpowiadającej mu wartości.
MORSE_CODE_DICT = { 'A':'.-', 'B':'-...',
'C':'-.-.', 'D':'-..', 'MI':'.',
'F':'..-.', 'G':'--.', 'H':'...',
'I':'..', 'J':'.', „K”:'-.-',
„L”:'.-..', 'M':'--', 'N':'-.',
„O”:'', 'P':'.--.', 'Q':'--.-',
'R':'.-.', 'S':'...', 'T':'-',
„U”:'..-', „V”:'...-', „W”:'.--',
'X':'-..-', „T”:'-.--', „Z”:'--..',
'1':'.', '2':'..', '3':'...--',
'4':'...-', '5':'...', '6':'-...',
'7':'--...', '8':'..', '9':'.',
'0':'', ', ':'--..--', '.':'.-.-.-',
'?':'..--..', '/':'-..-.', '-':'-...-',
'(':'-.--.', ')':'-.--.-' }
Zadeklaruj funkcję o nazwie encrypt, która akceptuje wiadomość jako parametr wejściowy. Wewnątrz funkcji zainicjuj zmienną o nazwie szyfr z pustym ciągiem. Użyjesz tego do utworzenia i przechowywania zaszyfrowanej wiadomości. Następnie zadeklaruj pętlę for, która przegląda każdą literę w wiadomości.
Jeśli litera nie jest spacją, przekaż ją do słownika w celu wyszukania. Słownik zwraca odpowiednią wartość kodu More na podstawie klucza. Dodaj spację, aby oddzielić znaki alfabetu Morse'a i użyj skrótu += operatora, aby połączyć go z kodem uzyskanym ze słownika. Jeśli litera jest białą spacją, dodaj dodatkową spację do szyfru; Alfabet Morse'a oddziela słowa dwoma kolejnymi spacjami.
pokszyfrować(wiadomość):
szyfr = ""
dla listu w wiadomości:
Jeśli litera != " ":
szyfr += MORSE_CODE_DICT[litera] + " "
w przeciwnym razie:
szyfr += " "
powrót szyfr
Zadeklaruj funkcję o nazwie decrypt, która akceptuje wiadomość jako parametr wejściowy. Dodaj spację na końcu, używając operatora skrótu, aby uzyskać dostęp do ostatniego znaku alfabetu Morse'a. Zainicjuj dwie zmienne, odszyfruj i tekst trzymać puste struny. Zmienna decipher będzie przechowywać odszyfrowane zdanie składające się z alfabetu angielskiego, podczas gdy citext będzie przechowywać każdą literę alfabetu Morse'a.
Wykonaj iterację pętli for, która przechodzi przez każdą literę alfabetu Morse'a. Jeśli litera nie jest białym znakiem, zainicjuj zmienną licznika i, która śledzi liczbę spacji do zera i przechowuj kod Morse'a pojedynczego znaku w citext. W przeciwnym razie litera jest spacją, więc zwiększ licznik o jeden.
Jeśli licznik jest równy dwa, oznacza to, że musisz dodać spację do odszyfrowanej zmiennej słowa deszyfr. W przeciwnym razie uzyskaj dostęp do kluczy, używając ich wartości. Aby to zrobić, przejrzyj pary klucz-wartość w słowniku za pomocą funkcji items. Jeśli citext jest równy wartości, dodaj odpowiedni klucz do zmiennej deszyfrującej, używając operatora skrótu.
Na koniec wyczyść tekst, aby uzyskać następną literę i zwróć otrzymane odszyfrowane zdanie do wywołania funkcji.
pokodszyfrować(wiadomość):
wiadomość += " "
rozszyfrować = ""
tekst = ""dla listu w wiadomości:
Jeśli litera != " ":
ja = 0
tekst += litera
w przeciwnym razie:
ja += 1jeśli ja == 2:
rozszyfrować += " "
w przeciwnym razie:
Doklucz, wartośćWMORSE_CODE_DICT.rzeczy():
jeśli tekst == wartość:
rozszyfrować += klucztekst = ""
powrót odszyfrować
Przetestuj funkcje za pomocą przykładowych danych wejściowych. Zacznij od zainicjowania zmiennej o nazwie wiadomość ze słowem lub zdaniem, które chcesz zaszyfrować. Użyj górny przekonwertować wszystkie litery na wielkie litery i przekazać je jako argument funkcji encrypt. Kod Morse'a zawiera tylko wielkie litery, które są kluczami w słowniku. Pomaga to również uniknąć niepotrzebnego sprawdzania poprawności wielkości liter w czasie wykonywania.
Wydrukuj otrzymaną wartość, aby zobaczyć odpowiednik oryginalnego zdania w alfabecie Morse'a.
Następnie zapisz kod Morse'a w zmiennej wiadomości i przekaż go do funkcji odszyfrowywania. Wydrukuj wynik i sprawdź, czy jest poprawny.
Zamiast zakodować dane wejściowe na stałe, możesz zaakceptować je od użytkownika za pomocą wejście() funkcjonować.
wiadomość = "Zrobić użytek z"
wynik = zaszyfruj (wiadomość.upper())
wydrukować(wynik)
wiadomość = "-- .- -.-. ..-.... ..-."
wynik = odszyfruj (wiadomość)
wydrukować(wynik)
Dane wyjściowe tłumacza kodu Morse'a w Pythonie
Program w języku Python tłumaczy każdą literę alfabetu angielskiego na jej odpowiednik w alfabecie Morse'a i wyświetla ją na ekranie wyjściowym terminala, jak pokazano. Jeśli skopiujesz otrzymane dane wyjściowe i przekażesz je do odszyfrowania, otrzymasz oryginalny tekst, który przekazałeś wcześniej. To potwierdza, że tłumaczenie działało idealnie.
Aplikacje mobilne dla alfabetu Morse'a
Tłumacze alfabetu Morse'a są dostępne za darmo na wyciągnięcie ręki. Na różnych platformach dostępnych jest ponad setki aplikacji, takich jak Morse Mania, Morse Trainer, Morse Code Reader, Morse Code Keyboard i Morse Code Translator. Ku twojemu zdziwieniu obsługuje go nawet GBoard – klawiatura Google.
Aby uzyskać dostęp do alfabetu Morse'a na Gboard, otwórz ikonę Ustawienia na Gboard, wybierz Języki i dotknij Angielski (USA). Przesuń palcem w prawo przez opcje, a następnie wybierz Alfabet Morse'a. Twoja klawiatura obsługuje teraz wstawianie alfabetu Morse'a wraz z usługami ułatwień dostępu, takimi jak TalkBack, Switch Access czy Przeczytaj na głos.