如果其中一个是字符串,如何对两个十六进制值进行异或?

How to XOR two hex values if one of them was a string?

下面是问题的一个片段

string = "test"
for index, character in enumerate(string):
     value = hex(ord(character)) ^ 0xababab

此代码返回一个错误,它不能对字符串和整数进行 XOR。那么如何让 python 将 hex(ord(character)) 作为整数而不是字符串来处理呢?

我尝试通过添加 int(hex(ord(character))) 将其转换为 int,但是 returns 出现以下错误:Invalid literal for int with base10

就用ord,是整数

for c in  s:
    print(ord(c) ^ 0xababab)

如您所见,这些是等价的:

1 == 0x01 # True