python入门代码,疑问


quiz = [116, 66, 85, 81, 93, 120, 81, 83, 91]

for i in range(len(quiz)):
    quiz[i] ^= 0x30
#这一步没看懂,是初始化quiz吗?

quiz = ''.join([chr(_) for _ in quiz])
#这里应该是将ASCII替换成了字母后存入quiz变量,但是不理解是怎么实现的

answer = input()

if answer == quiz:
    print("Welcome Hackers :)")
else:
    print("No No :/")

如果知道请帮助一下,谢谢

# ^    是按位异或
# 可以算一种加密方法
for i in range(len(quiz)):
    quiz[i] ^= 0x30
#这一步是对quiz的元素,逐个与0x30 按位异或


# 两次异或恢复原数据。
quiz = [116, 66, 85, 81, 93, 120, 81, 83, 91]
print(quiz)
for i in range(len(quiz)):
    quiz[i] ^= 0x30

print(quiz)

for i in range(len(quiz)):
    quiz[i] ^= 0x30
print(quiz)

至于这句
分开理解
quiz = ''.join([chr(_) for _ in quiz])

# 把ASCII 变成字符
q1 = [chr(_) for _ in quiz]
print(q1)
# 把列表变成字符串
q2 = ''.join(q1)
print(q2)