Python 3において、文字列リテラルの前に’b’文字がある場合、それは何を意味するのか?

PYTHON3 チュートリアル

Python 3におけるバイト文字列の基本

Python 3では、バイト文字列は通常の文字列とは異なり、バイトのシーケンスとして扱われます。これを作成するには、文字列リテラルの前に小文字の ‘b’ を付けます。この ‘b’ プレフィックスは、その文字列がASCIIエンコードされたバイト列であることを示します。バイト文字列は、ファイルのデータ処理やネットワーク通信など、バイナリデータを直接扱う場面で便利です。

バイト文字列と通常の文字列の違い

通常の文字列はUnicode文字列として扱われ、多様な文字セットをサポートしています。一方、バイト文字列は単なるバイトの列であり、直接的な文字の表現ではなくデータのバイト表現として機能します。これにより、エンコーディングやデコーディングのプロセスを明示的にコントロールする必要があります。

バイト文字列の作成

Pythonでバイト文字列を作成するには、文字列リテラルの前に ‘b’ を付けます。以下にいくつかの例を示します。

# 単純なバイト文字列
bytes1 = b'Hello, world!'
print(bytes1)  # 出力: b'Hello, world!'

# ASCII以外の文字を含むバイト文字列の場合、Unicodeエスケープを使用
bytes2 = b'\xe3\x81\x82'
print(bytes2)  # 出力: b'\xe3\x81\x82' (これは日本語の「あ」のUTF-8エンコード)

# バイト文字列を使ってファイルをバイナリモードで書き込み
with open('sample.bin', 'wb') as file:
    file.write(b'\x00\x01\x02')

バイト文字列の操作

バイト文字列は、スライスやインデックスアクセスが可能ですが、その操作はバイト単位で行われます。

bytes3 = b'abcdef'
print(bytes3[0])  # 出力: 97 (ASCIIコードで 'a')
print(bytes3[2:5])  # 出力: b'cde'

これらの例からわかるように、バイト文字列は特定のデータ処理タスクにおいて非常に有用です。ただし、使用する際には、Unicode文字列とは異なる振る舞いに注意が必要です。

購読
通知
0 Comments
Inline Feedbacks
View all comments