头都大了了 2022-01-05 22:48 采纳率: 85.7%
浏览 25
已结题

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 :/")

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

  • 写回答

1条回答 默认 最新

  • 陈年椰子 2022-01-06 07:40
    关注
    # ^    是按位异或
    # 可以算一种加密方法
    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)
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 1月14日
  • 已采纳回答 1月6日
  • 创建了问题 1月5日