Python 3.x 在python中用一个字节表示一个数字?

Python 3.x 在python中用一个字节表示一个数字?,python-3.x,binary,raspberry-pi,bytearray,wiringpi,Python 3.x,Binary,Raspberry Pi,Bytearray,Wiringpi,一个字节的数据可以表示从o到255的值。然而,当我在python中声明一个字节objct并给它一个小于255的整数时,它的大小仍然很大 >>a=b'9' >>sys.getsizeof(a) >>18 >>a=b'19' >>sys.getsizeof(a) >>19 >>a=b'019' >>sys.getsizeof(a) >>20 这些数据需要通过raspberry pi的布线pi

一个字节的数据可以表示从o到255的值。然而,当我在python中声明一个字节objct并给它一个小于255的整数时,它的大小仍然很大

>>a=b'9'
>>sys.getsizeof(a)
>>18
>>a=b'19'
>>sys.getsizeof(a)
>>19
>>a=b'019'
>>sys.getsizeof(a)
>>20
这些数据需要通过raspberry pi的布线pi库传输到SPI设备。库用python包装的原始C函数将一个字符数组作为输入,该数组的大小完全是字节大小。但是,在python中,函数将a
b'
作为其参数。“你好,世界!”\如果表示为字符数组,则n'为13个字节。在python中声明字符串并使用
str.encode()
对其进行编码会得到一个大小为30字节的对象

>>s ='Hello World!\n'
>>s=s.encode()
>>sys.getsizeof(s)
>>30

我如何解决这个问题,使“1”表示数字“1”,大小为一个字节(表示为00000001位),字符串
Hello world\n
实际上是一个13字节的数组?

你不能。欢迎使用Python
b'\x01'
如果内存中的实际对象比其内容大几个字节,又有什么关系?如果您将其写入某个位置(二进制文件、到另一个进程的管道、到微控制器的串行端口等),则只写入实际内容字节(即,在
b'Hello world!\n'
的情况下为13字节)。