Encodes a single English alphabet character into Morse code based on the character map file specified at the time this Morse Code object was* created. Lowercase and uppercase characters are treated equivalent* in the conversion to Morse code.

Respuesta :

Answer: 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':'-----', ', ':'--..--', '.':'.-.-.-',  

                   '?':'..--..', '/':'-..-.', '-':'-....-',  

                   '(':'-.--.', ')':'-.--.-'}

Explanation:

# 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  

           # correspponding 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()