将每行从文本文件发送到函数作为参数时,代码的行为不符合预期

时间:2017-11-22 21:32:30

标签: python-3.x python-2.7

我有一个文件dest.txt,这个格式有大约20个莫尔斯代码:

['. . ... .']
['. . ... -']
['. . -.. .']
['. . -.. -']
['. - ... .']
['. - ... -']

当我将morsecode分配给变量ex a1 = [' - .. - - 时,我的morse解码功能正常工作并解码morsecode。 -.-。 - ']并将a1作为参数发送到morseDecode函数,并将值恢复为DMNCT。但是,在下面的代码中,我试图遍历文本文件并将每行发送到morsedecode函数但输出不是预期。

from itertools import product
    def morseDecode(inputStringList):
        message = inputStringList
        #print message
        message = ' '.join(inputStringList)
        message = message + ' '  # adds space at the end of the string message
        #print message
        temp1 = message.replace(".-.-.-", ". ")
        temp2 = temp1.replace(".----.", "' ")
        temp3 = temp2.replace("/", "")
        temp1 = temp3.replace(".... ", "h")
        temp2 = temp1.replace("...- ", "v")
        temp1 = temp2.replace("..-. ", "f")
        temp2 = temp1.replace(".-.. ", "l")
        temp1 = temp2.replace(".--. ", "p")
        temp2 = temp1.replace(".--- ", "j")
        temp1 = temp2.replace("-... ", "b")
        temp2 = temp1.replace("-..- ", "x")
        temp1 = temp2.replace("-.-. ", "c")
        temp2 = temp1.replace("-.-- ", "y")
        temp1 = temp2.replace("--.. ", "z")
        temp2 = temp1.replace("--.- ", "q")
        temp1 = temp2.replace("... ", "s")
        temp2 = temp1.replace("..- ", "u")
        temp1 = temp2.replace(".-. ", "r")
        temp2 = temp1.replace(".-- ", "w")
        temp1 = temp2.replace("-.. ", "d")
        temp2 = temp1.replace("-.- ", "k")
        temp1 = temp2.replace("--. ", "g")
        temp2 = temp1.replace("--- ", "o")
        temp1 = temp2.replace(".. ", "i")
        temp2 = temp1.replace(".- ", "a")
        temp1 = temp2.replace("-. ", "n")
        temp2 = temp1.replace("-- ", "m")
        temp1 = temp2.replace(". ", "e")
        temp2 = temp1.replace("- ", "t")
        result = temp2.upper()
        return result


    def fun():
        with open('dest.txt') as f:
            for line in f:
                a = line
                print morseDecode(a)
        a1=['-.. -- -. -.-. -']
        print morseDecode(a1)


    fun()

    I get the output as :

[ ' TEE  TT  TE  EETE  E' ] 
[ ' TEE  TT  TE  EETE  T' ] 
[ ' TEE  TT  TE  TETE  E' ] 
[ ' TEE  TT  TE  TETE  T' ] 

这里出了什么问题。请帮忙。

0 个答案:

没有答案