我想将此C ++代码转换为Python v2:
static unsigned char asConvCode[3] = {0xFC, 0xCF, 0xAB};
void asConv(char* str, int size)
{
int i = 0;
for (i = 0; n< size; n++)
{
str[i] ^= asConvCode[n % 3];
}
}
尝试这样做:
def asConv(self, data):
asConvCode= [0xFC, 0xCF, 0xAB]
for i in range(len(data)):
data[i] ^= asConvCode[i % 3] # Error: Unsupported operand type(s) for ^=: ...
return data
我会很高兴任何提示
答案 0 :(得分:2)
在Python中,字符串中的字符只是长度为1的字符串,而不是整数。所以你必须使用它:
data[i] = chr(ord(data[i]) ^ asConvCode[i % 3])
另外,正如我在评论中写的那样,你的return data
处于错误的缩进级别,并且会在处理完第一个字符后返回你的函数。