print 如何处理二进制数据及其显示方式以及 python 字节函数的工作原理?

how does print deal with binary data and how it display it and how python bytes function works?

如果我输入这段代码,输出将是:b'd'

a = bytes([100])
print(type(a))
print(a)

我知道十六进制的 d 是数字 100 并且似乎 python print 告诉我数据是二进制类型,因为字母在输出中所以为什么我存储时的结果变量中的十进制数 100 为二进制,即 1100100

所以

a = 1100100    #in binary

和type(a)也是return二进制类型

那么打印函数在开始时打印为二进制 ( b ) 字母并同时通过其 ASCII 十六进制表示形式表示数字的原因是什么

或者是因为存储的数字是十六进制的,或者到底发生了什么让我很困惑,对吗? 现在如果有人能回答这些问题

b字母是bytes的缩写。所以它既不是十六进制数也不是二进制数,它是一个字节列表。字节的默认 __str__ 函数,当您调用 print(a) 尝试将字节解码为字符串时使用,这就是您看到字母 d 的原因。