Str不可调用错误

时间:2016-03-11 14:18:39

标签: python-3.x

我正在尝试解密我最近使用我创建的一段代码加密的文本文件,该文件完美无缺, 为了能够解密我的代码我需要找出偏移因子来自我之前显示的8位字符键,当用户输入它时,它完全正常,这部分代码工作正常。所以我已经计算了我的偏移因子,当我将我的字符更改为整数减去偏移量然后转换回字符时我面对的是一条消息,其中包含

  

追踪(最近一次通话):   
文件“N:\ 4512_CB4-Traditional Application \ Encryption,Decrption coursework.py”,第154行,MainMenu()     
文件“N:\ 4512_CB4-Traditional Application \ Encryption,Decrption coursework.py”,第22行,MainMenu       解密()     
文件“N:\ 4512_CB4-Traditional Application \ Encryption,Decrption coursework.py”,第135行,在Decrypt中       Y = CHR(x)的   
TypeError:'str'对象不可调用

这是我的代码:

def Decrypt():
Message=[]
Character=[]
for chr in Decry:
    A = (ord(chr))
    Character.append(A)
c = sum(Character)
c = round(c/8)
c = c - 32

print("\n" *1)
print('Starting Decryption')
count = 0
while count !=len(info):
    Message.append(info[count])
    count=count+1
count = 0
while count!=len(info):
    if Message[count] == " ":
        count=count+1
    else:
        x=ord(Message[count])
        x=x-c
        if x <33:
            x=x+94
            y=chr(x)
            Message[count]=y
            count=count+1
        else:
            y=chr(x)
            Message[count]=y
            count=count+1
print("...Decryption finished...")
time.sleep(1)
file=",".join(Message).replace(",","")
print('This is your new text file')
print(file)
filename = input('what would you like your file to be saved as')+'.txt'
openfile = open (filename, 'w')
thedetails =openfile.write(file)
time.sleep(1)
print('Done!')

3 个答案:

答案 0 :(得分:0)

问题是您已将chr函数用作代码顶部的变量来覆盖它。所以重命名该变量,它应该可以正常工作。

为了澄清,下面的代码段是在for循环之外发生的情况.Python会将chr作为变量而不是以前的内置函数来处理。

for chr in Decry:
    A = (ord(chr))

答案 1 :(得分:0)

尝试重命名chr循环中的for

for chr in Decry:
  A = (ord(chr))

还有一些其他名字。它与内置函数chr产生冲突。

答案 2 :(得分:-1)

或者只是创建一个像这样的chr副本:

     def copyofchr(**args):
         chr(**args)

现在总是在您使用chr()时将其替换为copyofchr() 您现在需要在Decrypt()函数之后在顶部实现这个微小的代码,它将起作用。

你诚挚的heureka