Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- CHARACTER_SPACE = " "
- MORSE_WORD_DELIMITER = "|"
- ALPHA_WORD_DELIMTER = " "
- ALPHA_TO_MORSE = 1
- MORSE_TO_ALPHA = 2
- codeDictionary = {'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': '--..',
- '0': '-----', '1': '.----', '2': '..---',
- '3': '...--', '4': '....-', '5': '.....',
- '6': '-....', '7': '--...', '8': '---..',
- '9': '----.',
- '.': '.-.-.-', ',': '--..--', '?': '..--..',
- '!': '-.-.--', '\'': '.----.', '/': '-..-.',
- '(': '-.--.', ')': '-.--.', '&': '.-...',
- ':': '---...', ';': '-.-.-.', '=': '-...-',
- '+': '.-.-.', '-': '-....-', '_': '..--.-',
- '"': '.-..-.', '$': '...-..-', '@': '.--.-.'
- }
- def convertWord(word, codeDictionary):
- outputString = ''
- characters = word.split(CHARACTER_SPACE)
- if len(characters) == 1:
- characters = word
- for char in characters:
- char = char.upper()
- try:
- outputString += codeDictionary[char]
- except KeyError, e:
- pass
- outputString += CHARACTER_SPACE
- return outputString
- def convertMessage(message, mode, codeDictionary):
- # if we are decoding morse then swap the keys and values in the dictionary
- if mode == MORSE_TO_ALPHA:
- codeDictionary = dict((v,k) for k,v in codeDictionary.iteritems())
- # get a list of words in the message
- if mode == MORSE_TO_ALPHA:
- wordDelimiter = MORSE_WORD_DELIMITER
- else:
- wordDelimiter = ALPHA_WORD_DELIMTER
- words = message.split(wordDelimiter)
- outputMessage = ""
- for word in words:
- outputMessage += convertWord(word, codeDictionary)
- return outputMessage
- mode = ALPHA_TO_MORSE
- message ="Hello World"
- #mode = MORSE_TO_ALPHA
- #message = ".... . .-.. .-.. --- | .-- --- .-. .-.. -.."
- print(convertMessage(message, mode, codeDictionary))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement