Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 如何在python中打印文本字节?_Python 3.x_String_Hex_Byte - Fatal编程技术网

Python 3.x 如何在python中打印文本字节?

Python 3.x 如何在python中打印文本字节?,python-3.x,string,hex,byte,Python 3.x,String,Hex,Byte,我有一个小脚本来编码和解码标题 标题长度=4 类标题: def编码(长度:int,isRequest:bool): 如果长度>0x7fffffff: raise VALUE ERROR(“长度太大,无法处理”) byteList=[(isRequest>24)&0x7f,(长度>>16)&0xff,(长度>>8)&0xff,(长度)&0xff] 返回字节列表 def解码(头): isRequest=bool(头[0]&0x80) byteList=[head[0]&0x7f] 对于范围内的i(1

我有一个小脚本来编码和解码标题

标题长度=4
类标题:
def编码(长度:int,isRequest:bool):
如果长度>0x7fffffff:
raise VALUE ERROR(“长度太大,无法处理”)
byteList=[(isRequest>24)&0x7f,(长度>>16)&0xff,(长度>>8)&0xff,(长度)&0xff]
返回字节列表
def解码(头):
isRequest=bool(头[0]&0x80)
byteList=[head[0]&0x7f]
对于范围内的i(1,标题长度):
追加(头[i]&0xff)
返回(isRequest、byteList)
n=int(输入(“数字:”)
r=bool(输入(“is请求:”)
encoded=头。encode(n,isRequest)
打印(f“编码:{encoded};字节:{bytes(encoded)}”)
decoded=Header.decode(bytes(encoded))#我将它们转换为字节,因为这是一个测试脚本,输入就是这个脚本
打印(f“是请求:{decoded[0]};decoded:{decoded[1]}”)
但当我插入数字123456789作为输入并请求False时,我得到以下输出作为响应:

encoded: [7, 91, 205, 21]; bytes: b'\x07[\xcd\x15'
is request: False; decoded: [7, 91, 205, 21]
这一切都是正确的,除了应该是
b'\x07[\xcd\x15'
b'\x07\x5b\xcd\x15'
之外,我不知道为什么它会转换成
[
,它不会只使用
0x5b
值,而是使用(显然)所有代表某个可打印字符的值,我尽一切努力让它只打印文本字节,但什么也不打印,我是否做错了什么?我如何确保它只打印文本字节