1. ホーム
  2. python

[解決済み] 文字列リテラルの前にある'b'文字は何を意味するのでしょうか?

2022-02-19 19:10:01

質問

どうやら、以下のような構文が有効のようです。

my_string = b'The string'

知りたいです。

  1. これは何ですか? b 文字列の前にある文字はどういう意味ですか?
  2. 使用するとどのような効果がありますか?
  3. どのような場面で使うのが適切か?

を発見しました。 関連質問 にあるのですが、その質問はPHPに関するもので、それによると b これは、PHP 6 に移行する際に、PHP < 6 のバージョンと互換性のあるコードを作成するために必要なものです。

確かに このドキュメント を使用することについて、Python のサイトに記載されています。 u 文字を同じ構文で使用すると、文字列をUnicodeとして指定することができます。残念ながら、この記事では b という文字が、その文書のどこにも書かれていない。

また、好奇心で聞いたのですが、この記号の他にも bu というのは、他のことをするのですか?

どのように解決するのですか?

引用元 Python 2.xのドキュメント :

プレフィックスに 'b' または 'B' を付けると無視されます。 Python 2では、これは リテラルは、バイト・リテラルになるはずです。 Python 3では(例えば、コードが で自動的に変換されます)。A u' または 'b' という接頭辞の後に続くのは r' 接頭辞

Python 3 ドキュメント と記載されています。

Bytesリテラルは、常に先頭に'b'または'B'が付きます。これは、str型の代わりにbytes型のインスタンスを生成します。また、ASCII文字のみを含むことができます。128以上の数値のバイトは、エスケープを使用して表現する必要があります。