Pythonの文字列リテラルの先頭に付く「b」とは?意味と役割をわかりやすく解説
「b」プレフィックスの基本的な意味
Pythonで文字列リテラルの先頭に付ける「b」または「B」は、そのリテラルがバイト列(bytes型)であることを示すプレフィックスです。この記号の挙動は、Python 2とPython 3で大きく異なるため、注意が必要です。
Python 2での扱い
Python 2では、「b」や「B」のプレフィックスは単純に無視されます。Python 2では通常の文字列リテラル自体がバイト列として扱われるため、「b」を付けても付けなくても動作に違いはありません。
Python 3での扱い
一方、Python 3ではバイト列リテラルには必ず「b」または「B」を前置します。「b」を付けたリテラルは、str型ではなくbytes型のインスタンスを生成します。
また、bytesリテラルに直接記述できるのはASCII文字のみです。数値が128以上のバイトを表現したい場合は、エスケープシーケンスを使用する必要があります。
例:
b'hello' → bytes型のオブジェクトを生成b'\x80' → 128以上の値はエスケープシーケンスで表現
Python 3.xにおける型の明確な区別
Python 3.xでは、テキストとバイナリデータが以下のように明確に区別されています。
str型(テキスト)
'...' の形式のリテラルで生成されるのがstr型です。これはUnicode文字のシーケンスを表し、内部のエンコーディングはPythonのビルド方法に応じてUTF-16またはUTF-32となります。
bytes型(バイナリ)
b'...' の形式のリテラルで生成されるのがbytes型です。これはオクテット(0〜255の整数)のシーケンスを表します。
まとめ
「b」プレフィックスは、Python 3においてそのリテラルがテキスト(str型)ではなくバイナリデータ(bytes型)であることを明示するためのものです。画像などのバイナリファイルの読み書きやネットワーク通信など、生のバイトデータを扱う場面で活用される重要な記法です。
-
Pythonで文字列が空かどうかを確認する最も洗練された方法とは?
Pythonで文字列が空かどうかを判定する最もシンプルで「Pythonic」な方法は、not 演算子を使うことです。Pythonでは空の文字列は「falsy(偽値)」として扱われ、ブール値のコンテキストでは False と評価されます。そのため、if not string: という条件式だけで空文字列のチェックが可能です。 基本的な使い方 string = if not string: print(Empty String!) 出力 Empty String! このコードを実行すると、変数 string が空であるため、「Empty String!」が出力されます。 空白文字を含む場
-
Pythonで文字列から最小のアルファベット文字を取得する方法
Pythonでは、組み込み関数 min() を使うことで、文字列に含まれる最小のアルファベット文字を簡単に取得できます。文字列をそのまま引数として渡すだけで、文字コード(Unicode)の順序にもとづいて最も小さい文字が返されます。基本的な使い方>>> min(helloworld) d >>> min(TAJMAHAL) A最初の例では、helloworld の中で最も文字コードが小さい d が返されています。2つ目の例では、大文字のみの文字列 TAJMAHAL から A が取得されています。仕組みと注意点min() は各文字をUnicodeのコードポイン