logo

Python의 모스 부호 번역기

모스 부호는 특별한 장비 없이 숙련된 청취자나 관찰자가 직접 이해할 수 있는 일련의 켜짐/꺼짐 음, 빛 또는 클릭으로 텍스트 정보를 전송하는 방법입니다. 전신 발명가인 Samuel F. B. Morse의 이름을 따서 명명되었습니다.

연산

알고리즘은 매우 간단합니다. 영어의 모든 문자는 일련의 '점'과 '대시'로 대체되거나 때로는 단수형 '점' 또는 '대시'로 대체되거나 그 반대의 경우도 마찬가지입니다.
이 위키피디아를 참고하세요 영상 자세한 내용은.



암호화

  1. 암호화의 경우, 우리는 한 번에 하나씩 단어에서 각 문자(공백이 아닌 경우)를 추출하고 이를 우리가 선택한 데이터 구조에 저장된 해당 모스 부호와 일치시킵니다(파이썬으로 코딩하는 경우 사전이 나올 수 있음). 이 경우 매우 유용합니다)
  2. 인코딩된 문자열을 포함할 변수에 모스 부호를 저장한 다음 결과를 포함할 문자열에 공백을 추가합니다.
  3. 모스 부호로 인코딩하는 동안 모든 문자 사이에 1개의 공백을 추가하고 모든 단어 사이에 2개의 연속 공백을 추가해야 합니다.
  4. 문자가 공백이면 결과를 포함하는 변수에 또 다른 공백을 추가하십시오. 전체 문자열을 탐색할 때까지 이 과정을 반복합니다.

암호 해독

  1. 복호화의 경우, 디코딩할 문자열 끝에 공백을 추가하는 것부터 시작합니다(이에 대해서는 나중에 설명하겠습니다).
  2. 이제 공백이 없어질 때까지 문자열에서 문자를 계속 추출합니다.
  3. 공백을 얻자마자 추출된 문자 시퀀스(또는 모스 부호)에 해당하는 영어 문자를 찾아 결과를 저장할 변수에 추가합니다.
  4. 공간을 추적하는 것이 이 암호 해독 프로세스에서 가장 중요한 부분임을 기억하십시오. 2개의 연속 공백을 얻으면 디코딩된 문자열을 포함하는 변수에 또 다른 공백을 추가합니다.
  5. 문자열 끝의 마지막 공백은 모스 부호 문자의 마지막 시퀀스를 식별하는 데 도움이 됩니다(공백은 문자 추출 및 디코딩 시작을 위한 검사 역할을 하기 때문).

구현:

Python은 모스 부호와 같은 암호를 구현하는 데 매우 편리한 키-값 쌍의 형태로 정보를 저장하는 사전이라는 데이터 구조를 제공합니다. 모스 부호 차트를 사전에 저장할 수 있습니다. (키-값 쌍) => (영어 문자-모스 부호) . 일반 텍스트(영어 문자)가 키를 대신하고 암호문(모스 부호)이 해당 키의 값을 구성합니다. 키 값은 인덱스를 통해 배열 값에 액세스하는 것과 같은 방식으로 사전에서 액세스할 수 있으며 그 반대도 마찬가지입니다.

파이썬3




우편 집배원





부정 이산 수학
# Python program to implement Morse Code Translator> '''> VARIABLE KEY> 'cipher' ->'영어 문자열의 모스 번역 형식을 저장합니다'> 'decipher' ->'모스 문자열의 영어 번역 형식을 저장합니다'> 'citext' ->'단일 문자의 모스 부호를 저장합니다'> 'i' ->'모스 문자 사이의 공백 수를 유지합니다'> 'message' ->'인코딩되거나 디코딩될 문자열을 저장합니다'> '''> # Dictionary representing the morse code chart> MORSE_CODE_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'>:>'-----'>,>', '>:>'--..--'>,>'.'>:>'.-.-.-'>,> >'?'>:>'..--..'>,>'/'>:>'-..-.'>,>'-'>:>'-....-'>,> >'('>:>'-.--.'>,>')'>:>'-.--.-'>}> # Function to encrypt the string> # according to the morse code chart> def> encrypt(message):> >cipher>=> ''> >for> letter>in> message:> >if> letter !>=> ' '>:> ># Looks up the dictionary and adds the> ># corresponding morse code> ># along with a space to separate> ># morse codes for different characters> >cipher>+>=> MORSE_CODE_DICT[letter]>+> ' '> >else>:> ># 1 space indicates different characters> ># and 2 indicates different words> >cipher>+>=> ' '> >return> cipher> # Function to decrypt the string> # from morse to english> def> decrypt(message):> ># extra space added at the end to access the> ># last morse code> >message>+>=> ' '> >decipher>=> ''> >citext>=> ''> >for> letter>in> message:> ># checks for space> >if> (letter !>=> ' '>):> ># counter to keep track of space> >i>=> 0> ># storing morse code of a single character> >citext>+>=> letter> ># in case of space> >else>:> ># if i = 1 that indicates a new character> >i>+>=> 1> ># if i = 2 that indicates a new word> >if> i>=>=> 2> :> ># adding space to separate words> >decipher>+>=> ' '> >else>:> ># accessing the keys using their values (reverse of encryption)> >decipher>+>=> list>(MORSE_CODE_DICT.keys())[>list>(MORSE_CODE_DICT> >.values()).index(citext)]> >citext>=> ''> >return> decipher> # Hard-coded driver function to run the program> def> main():> >message>=> 'GEEKS-FOR-GEEKS'> >result>=> encrypt(message.upper())> >print> (result)> >message>=> '--. . . -.- ... -....- ..-. --- .-. -....- --. . . -.- ... '> >result>=> decrypt(message)> >print> (result)> # Executes the main function> if> __name__>=>=> '__main__'>:> >main()>

>

>

산출:

--. . . -.- ... -....- ..-. --- .-. -....- --. . . -.- ... GEEKS-FOR-GEEKS>