解码莫尔斯编码器使用字符串替换方法

时间:2016-04-30 17:43:00

标签: python

    def decodeMorse(morseCode):
x = morseCode.replace(".-", "A")
x2 = x.replace("-...","B")
x = x2.replace("-.-.", "C")
x2 = x.replace("-..", "D")
x = x2.replace(".", "E")
x2 = x.replace("..-.", "F")
x = x2.replace("..-.", "G")
x2 = x.replace("....", "H")
x = x2.replace("..", "I")
x2 = x.replace(".---", "J")
x = x2.replace("-.-", "K")
x2 = x.replace(".-..", "L")
x = x2.replace("--", "M")
x2 = x.replace("-.", "N")
x = x2.replace("---", "O")
x2 = x.replace(".--.", "P")
x = x2.replace("--.-", "Q")
x2 = x.replace(".-.", "R")
x = x2.replace("...", "S")
x2 = x.replace("-", "T")
x = x2.replace("..-", "U")
x2 = x.replace("...-", "V")
x = x2.replace(".--", "W")
x2 = x.replace("-..-", "X")
x = x2.replace("-.--", "Y")
x2 = x.replace("--..", "Z")
x = x2.replace(" ", " ")
print(x)

它取代每一个“。”以字母E为例,每当我键入“.... -.--”时,它会给我嘿,但我得到“EEEE E TAT” 任何帮助谢谢!

1 个答案:

答案 0 :(得分:1)

您需要将每个字母分开。与另一个角色。所以TED会是,#34; - 。 - .."然后使用拆分来分割 - ' s和。' s。然后替换每个字母。要背对背单词,您需要将其拆分为二维列表。即句子" AC BA CA" - > [[' .-'' -.-'],[' -...'' .-&#39 ],[' -.-'' .-']] 然后你会使用这个方法,但是对于外部单元格中的每个项目,都要在字符串中添加一个空格。

def cnvtletter(code):
    if(code==".-"):
        return 'A'
    if(code=="-..."):
        return 'B'
    if(code=="-.-."):
        return 'C'

word= '.-|-.-.|-...'
delimiter='|'
letters=word.split(delimiter)
out=''
for letter in letters:
    out+=cnvtletter(letter)
print out