str =[102,108,97,103,123,101,51,48,100,97,57,52,48,101,101,102,57,55,49,56,102,49,100,98, 99,52,97,48,100,48,99,100,101,49,101,99,98,125] flag = '' for i in str: flag += chr(i) print(flag) 这段代码为什么会报错
时间: 2023-08-24 07:08:26 浏览: 93
标准函数库函数-renren-security开发文档3.2_完整版
这段代码在Python 2中可以正常运行,但在Python 3中会报错。原因是在Python 3中,chr()函数只接受0到1114111之间的整数参数,而不接受像[102,108,97,103,123,101...]这样的列表参数。要使上述代码在Python 3中正常运行,可以将列表参数转换为字节字符串,然后再将字节字符串解码为普通字符串。修改后的代码如下:
```
str = bytes([102,108,97,103,123,101,51,48,100,97,57,52,48,101,101,102,57,55,49,56,102,49,100,98,99,52,97,48,100,48,99,100,101,49,101,99,98,125])
flag = str.decode('utf-8')
print(flag)
```
这样就可以正确输出字符串"flag{e30da940eef9718f1dbc4a0d0cde1ecb}"了。
阅读全文