int.to_bytes() for a single byte
Thomas Jollans
tjol at tjol.eu
Wed Nov 7 04:14:51 EST 2018
On 07/11/2018 05:22, jladasky at itu.edu wrote:
> On Tuesday, November 6, 2018 at 7:19:09 PM UTC-8, Terry Reedy wrote:
>> On 11/6/2018 9:30 PM, j...y at it.u wrote:
>>
>>> b = i.to_bytes(1, "big")
>>>
>>> Is there another function which provides a more logical interface to this straightforward task?
>>
>> Yes
>> >>> 33 .to_bytes(1, 'big')
>> b'!'
>> >>> bytes((33,))
>> b'!'
>
> Thanks Terry, that's what I was looking for.
>
> I had tried using the bytes() constructor directly, and was getting a byte array of zeros, of the length specified by the integer. That's in the documentation, and it might be useful, but I haven't seen an obvious use case, and it isn't what I wanted. Wrapping the integer in a tuple solves the problem of it being interpreted as a length.
>
A bytes is a sequence of 8-bit integers, which is why the constructor
takes a sequence (or, well, iterable) of integers.
>>> bytes([49,50,51])
b'123'
More information about the Python-list
mailing list