\

Pythonでは、bytesbytestringは2つの異なるデータ型で、それぞれが連続した文字を表現します。bytesは生の、符号なしの8ビット値を含み、これらはしばしばASCII(標準的な文字エンコーディング)で表示されます。一方、bytestringはテキスト文字を表すUnicodeの不変のシーケンスです。

Python 3のbytesbytearrayクラスはどちらもバイトの配列を保持しています。ここで、各バイトは0から255までの値を取ることができます。主な違いは、bytesオブジェクトは不変であるため、一度作成するとその要素を変更することはできません。対照的に、bytearrayオブジェクトはその要素を変更することを許可します。

bytesbytearrayはどちらも文字列をエンコードおよびデコードする関数を提供します。bytesオブジェクトはいくつかの異なる方法で構築することができます。例えば、次のようになります:

>>> bytes(5)
b'\\x00\\x00\\x00\\x00\\x00'
>>> bytes([116, 117, 118])
b'tuv'
>>> b'tuv'
b'tuv'
>>> bytes('tuv')
TypeError: string argument without an encoding
>>> bytes('tuv', 'utf-8')
b'tuv'
>>> 'tuv'.encode('utf-8')
b'tuv'

bytearrayも同様に、いくつかの方法で構築することができます。例えば、次のようになります:

>>> bytearray(5)
bytearray(b'\\x00\\x00\\x00\\x00\\x00')
>>> bytearray([116, 117, 118])
bytearray(b'tuv')
>>> bytearray('tuv')
TypeError: string argument without an encoding
>>> bytearray('tuv', 'utf-8')
bytearray(b'tuv')

bytearrayは可変であるため、その要素を変更することができます。例えば、次のようになります:

>>> a = bytearray('tuv', 'utf-8')
>>> a
bytearray(b'tuv')
>>> a[0]=115
>>> a
bytearray(b'suv')

bytesbytearrayオブジェクトは+演算子を使用して連結することができます。また、bytesbytearrayオブジェクトはdecode関数を使用して文字列に変換することができます。

以上がPythonにおけるbytesbytestringの基本的な違いと使い方になります。これらの理解はPythonプログラミングにおいて重要な要素となります。

投稿者 admin

コメントを残す

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