\

Pythonのbytes型は、不変(変更不可能)な整数のシーケンスで、0 <= x < 256の範囲の整数を表します。Python 3.8以降では、bytes.hex()がオプションのsepbytes_per_sepパラメータをサポートし、16進数の出力にバイト間のセパレータを挿入することができます。

以下に、Pythonのbytes型のいくつかの使用例を示します。

# bytesの自力入力
b'\x00\x01\x02\x03'  # result: b'\x00\x01\x02\x03'
b'\x64\x65\x66\x67'  # result: b'defg'  # asciiコードに対応した文字が表示されている

# ファイルからbytesで読込
with open('filename.bin', 'rb') as fp:
    all_bytes = fp.read()

# bytesの部分切出し
a = b'\x00\x01\x02\x03'
a[1:3]  # listなのでlistと同じ要領でスライスが可能
# result: b'\x01\x02'

# 整数をbytesへ変換
a = 255
a.to_bytes(2, 'little')  # to_bytes(変換後のバイト数, エンディアン)
# result: b'\xff\x00'

# bytesから整数へ
a = 255
byts = a.to_bytes(2, 'little')
int.from_bytes(byts, 'little')  # int.from_bytes(bytes, エンディアン)
# result: 255

# bytesから整数へ(符号付き)
a = -255
byts = a.to_bytes(2, 'little', signed=True)
int.from_bytes(byts, 'little', signed=True)  # int.from_bytes(bytes, エンディアン, signed=True)
# result: -255

# 16進表記文字列からbytesへ
bytes.fromhex('F1E2f3f4')

# bytesを16進表記文字列へ
by = bytes.fromhex('F1E2f3f4')
by.hex()  # result: 'f1e2f3f4'

以上のように、Pythonのbytes型は非常に便利で、多くの操作をサポートしています。バージョンによっては、さらに便利な機能が追加されています。Pythonを使ってプログラミングを行う際には、これらの機能を活用して、より効率的なコードを書くことができます。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です