基于密钥的解码器程序无法正常工作

时间:2014-10-13 18:01:39

标签: python decode

我试图制作一个解码编码信息的程序。我为大写和小写字母创建了2个单独的列表。但是每当我输入带空格的消息时,消息的第一个字母就会在每个单词之后保持输出。

    n1=1
    while n1!=0:
        n=input("\nEnter code")
        n1=int(n[0])
        newcode=n[1:]
        list1=['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']
        list2=['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']
        list3=[]
        list4=[]
        for x in newcode:
            if i in list1:
                n=list1.index(i)
                n2=n-n1
                y=list1[n2]
                print(y, end="")
            else:
                list3.append(i)
                for x in list3:
                    if i in list2:
                        n=list2.index(i)
                        n2=n-n1
                        y=list2[n2]
                        print(y, end="")
                    else:
                        print(i, end="")

                    if n1==0:
                        '/n'
                        break
  

样本输入:3Wkh fdu lu eoxh

     
    

样品输出:     TheT carT是T蓝色

         
      

示例输入:       9Rc' b j carlthxwn

             
        

示例输出:         ITI'司' AI' trickyI'一个

      
    
  

1 个答案:

答案 0 :(得分:0)

我可以毫无问题地运行你的程序并重现。问题不仅在于每个单词后面的第一个字母重复。实际上,所有小写字母都可以正常工作,但是大写字母空格和其他积累并且不断重复。

所有来自此行:list3.append(x)累积在list3所有非小写字母。

我没有花足够的时间来全面分析你的脚本,但这是一个快速而又脏的修复:

  • list3 = []替换第10行:list3 = [''](即make list3包含1个元素的列表)
  • 将第19行:list3.append(x)替换为list3[0] = x(即保留大小为1的list3,并将新元素放在前一个元素的位置)

我做了它并且随你做了示例输入,我得到了:

The car ir blue
It's a trickyone

(请注意,空格不再重复)