Python Forum

Full Version: I always get 'None' returned. Confused. What did I miss?
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
import random


# Morse Code string translator
# delimited with spaces for characters, and / for words
# format example "HELLO WORLD": .... . .-.. .-.. --- / .-- --- .-. .-.. -..
def untranslate_morse_code_string(code_string):

    InvertmorseAlphabet = {

        " ": "/", "A": ".-", "C": "-.-.", "B": "-...", "E": ".", "D": "-..",
        "G": "--.", "F": "..-.", "I": "..", "H": "....", "K": "-.-", "J": ".---",
        "M":  "--", "L": ".-..","O": "---", "N": "-.", "Q": "--.-", "P": ".--.",
        "S": "...", "R": ".-.", "U": "..-", "T": "-", "W": ".--", "V": "...-",
        "Y": "-.--", "X": "-..-", "Z": "--..",
        "1": ".----", "2": "..---", "3": "...--", "4": "....-", "5": ".....",
        "6": "-....", "7": "--...", "8": "---..", "9": "----.", "0": "-----"
    }
    print (InvertmorseAlphabet)
    print (code_string)


def translate_morse_code_string(code_string):

    morseAlphabet = {
        "/": " ", ".-": "A", "-.-.": "C", "-...": "B", ".": "E", "-..": "D",
        "--.": "G", "..-.": "F", "..": "I", "....": "H", "-.-": "K", ".---": "J",
        "--":  "M", ".-..": "L","---": "O", "-.": "N", "--.-": "Q", ".--.": "P",
        "...": "S", ".-.": "R", "..-": "U", "-": "T", ".--": "W", "...-": "V",
        "-.--": "Y", "-..-": "X", "--..": "Z",
        ".----": "1", "..---": "2", "...--": "3", "....-": "4", ".....": "5",
        "-....": "6", "--...": "7", "---..": "8", "----.": "9", "-----": "0"
    }



Consonant = [ 'B', 'C', 'D', 'F',  'G', 'H', 'J', 'K', 'L', 'M', 'N', 'P',  'Q', 'W', 'X', 'Z']
Vowel = ['A', 'E', 'I', 'O', 'U', 'Y'] # Sometimes y and w. Need more vowels
Number = [ '0', '1', '2', '3',  '4', '5', '6', '7', '8', '9' ]
#
# This below works
#
input_msg=random.choice(Vowel)+random.choice(Number)+random.choice(Consonant)
string_len=len(input_msg)
print(input_msg,string_len)
#
# End of this works
#
x=input_msg[2]
character_output = untranslate_morse_code_string(x)
print (x, character_output)
#
#What happens if I force a particular letter
#
x='G'
character_output = untranslate_morse_code_string(x)
print (x, character_output)
#
#What happens if I use the translate on a particular code
#
x="..."
character_output = translate_morse_code_string(x)
print (x, character_output)
You need a return statement. If you don't explicitly return something with a return statement, None is returned by default. Your functions don't seem to be doing anything, so I'm not sure exactly what they should return.
Duh!

This is what happens when you copy and modify a routine.

I left off all the code. I wasn't paying attention to what I was doing and was overtired.

Thanks. It works fine with the rest of the code in it.