You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中如何实现字符串与整数的XOR运算及解决报错?

解决Python中字符串与整数的XOR运算错误问题

Hey there! That TypeError makes total sense—Python doesn’t let you directly use the ^ (XOR) operator between a string and an integer. The ^ operator only works with integer values, so we need to do a quick conversion step first to make this work.

单个字符的解决方法

For your specific example with x = 'a', here's how to fix it:

  • Use ord() to convert the character to its corresponding ASCII integer value.
  • Perform the XOR operation with your integer (5 in this case).
  • Use chr() to convert the resulting integer back to a character.

Here's the working code:

x = 'a'
# Convert character to ASCII code
x_ascii = ord(x)
# Perform XOR with 5
y_ascii = x_ascii ^ 5
# Convert back to character
y = chr(y_ascii)
print(y)  # This will output 'f' (since 97 ^ 5 = 102, which is 'f')

处理整个字符串的情况

If you need to XOR every character in a string with an integer, you can use a list comprehension to iterate through each character:

input_str = "hello"
xor_key = 5
# Process each character, then join the results into a new string
result_str = ''.join([chr(ord(char) ^ xor_key) for char in input_str])
print(result_str)

字节级别的XOR(适合加密场景)

If you're working on something like simple encryption and want to operate on the string's bytes instead of individual characters, you can do this:

input_str = "hello"
xor_key = 5
# Encode string to bytes
input_bytes = input_str.encode('utf-8')
# Create a byte sequence of the key repeated to match the input length
key_bytes = bytes([xor_key]) * len(input_bytes)
# XOR each byte pair
result_bytes = bytes([b ^ kb for b, kb in zip(input_bytes, key_bytes)])
# Convert back to string (skip this if you just need the encrypted bytes)
result_str = result_bytes.decode('utf-8')
print(result_str)

内容的提问来源于stack exchange,提问作者Brian Cheong

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 04:20:55