Python 3-TypeError:不支持-:';int';和';str';

Python 3-TypeError:不支持-:';int';和';str';,python,Python,我正在尝试将python 2脚本转换为python 3,以下是脚本: def encode(key, clear): enc = [] for i in range(len(clear)): key_c = key[i % len(key)] enc_c = chr(ord(clear[i] + key_c) % 256) enc.append(enc_c) return base64.urlsafe_b64encode("

我正在尝试将python 2脚本转换为python 3,以下是脚本:

def encode(key, clear):
    enc = []
    for i in range(len(clear)):
        key_c = key[i % len(key)]
        enc_c = chr(ord(clear[i] + key_c) % 256)
        enc.append(enc_c)
    return base64.urlsafe_b64encode("".join(enc))

def decode(key, enc):
    dec = []
    enc = base64.urlsafe_b64decode(enc)
    for i in range(len(enc)):
        key_c = key[i % len(key)]
        dec_c = chr((256 + enc[i] - key_c) % 256)
        dec.append(dec_c)
    return "".join(dec)
当我运行该命令时,会出现以下错误:

Traceback (most recent call last):              
  File "./script", line 132, in <module>         
    payload=decode(p,payload)                   
  File "./script", line 22, in decode            
    dec_c = chr((256 + enc[i] - key_c) % 256)   
TypeError: unsupported operand type(s) for -: 'int' and 'str' 
回溯(最近一次呼叫最后一次):
文件“/script”,第132行,在
有效载荷=解码(p,有效载荷)
文件“/script”,第22行,解码
dec_c=chr((256+enc[i]-键c)%256)
TypeError:-:“int”和“str”的操作数类型不受支持
我该如何解决这个问题?抱歉,我是python新手。

来自

-:“str”和“int”的操作数类型不受支持

Python想告诉您什么(但很难找到一个好词) 对于它)是指不能将一串字母和数字连接到 一个文本字符串

为了避免这种情况,您可以将
enc[i]
key\u c
转换为
int
dec\u c=chr((256+int(enc[i])-int(key\u c))%256)

或者将256转换为
str
,然后将整个表达式返回到
int
,这样它就可以被256
dec_c=chr(int((str(256)+enc[i]-key_c))%256)模化。

注意,这可能不是您想要的结果。但是,您可以通过以下方式修复错误

-:“str”和“int”的操作数类型不受支持

Python想告诉您什么(但很难找到一个好词) 对于它)是指不能将一串字母和数字连接到 一个文本字符串

为了避免这种情况,您可以将
enc[i]
key\u c
转换为
int
dec\u c=chr((256+int(enc[i])-int(key\u c))%256)

或者将256转换为
str
,然后将整个表达式返回到
int
,这样它就可以被256
dec_c=chr(int((str(256)+enc[i]-key_c))%256)模化。


注意,这可能不是您想要的结果。但是,您可以通过这种方式修复错误

您可以尝试使用
dec\u c=chr((256+int(enc[i])-key\u c)%256)
您可以尝试使用
dec\u=chr((256+int(enc[i])-key\u c)%256)