Python bytes() 関数
bytes()Pythonで不変のバイトシーケンスを作成するための組み込み関数です。
バイトシーケンス(bytes)は、Pythonでバイナリデータを処理するための基本的な型であり、ファイルの読み書き、ネットワーク転送、画像処理などの場面でよく使用されます。bytesは不変であり、作成後に変更することはできません。
単語の意味: bytes「バイト」を意味し、Pythonのバイナリデータ型です。
基本構文とパラメータ
構文形式
bytes(source) bytes(source, encoding) bytes(source, encoding, errors)
パラメータの説明
- パラメータ source:
- 型:整数、反復可能オブジェクト、文字列
- 説明:バイトシーケンスを初期化するためのソースデータ。
- パラメータ encoding(オプション):
- 型:文字列
- 説明:文字列のエンコーディング形式(例:'utf-8')。
- パラメータ errors(オプション):
- 型:文字列
- 説明:エンコーディングエラーの処理方法。
関数の説明
- 戻り値:不変のbytesオブジェクトを返します。
- 特徴:bytes内の各要素は0〜255の整数です。
インスタンス
例1:bytesの作成
インスタンス
# 指定した長さのbytesを作成
b = bytes(5)
print(b) # 出力: b'\x00\x00\x00\x00\x00'
# 反復可能オブジェクトから作成
b = bytes([72, 101, 108, 108, 111])
print(b) # 出力: b'Hello'
# 文字列から作成(エンコーディングが必要)
b = bytes("你好", encoding='utf-8')
print(b) # 出力: b'\xe4\xbd\xa0\xe5\xa5\xbd'
# リテラルを使用
b = b"Hello"
print(b) # 出力: b'Hello'
b = bytes(5)
print(b) # 出力: b'\x00\x00\x00\x00\x00'
# 反復可能オブジェクトから作成
b = bytes([72, 101, 108, 108, 111])
print(b) # 出力: b'Hello'
# 文字列から作成(エンコーディングが必要)
b = bytes("你好", encoding='utf-8')
print(b) # 出力: b'\xe4\xbd\xa0\xe5\xa5\xbd'
# リテラルを使用
b = b"Hello"
print(b) # 出力: b'Hello'
実行結果の予想:
b'\x00\x00\x00\x00\x00' b'Hello' b'\xe4\xbd\xa0\xe5\xa5\xbd' b'Hello'
コードの解説:
- bytes(5) は5つのゼロバイトを作成します。
- 反復可能オブジェクトの要素は0〜255の整数である必要があります。
- 文字列変換にはエンコーディング形式の指定が必要です。
例2:bytesの操作
インスタンス
# バイトにアクセス
b = b"Hello"
print(b[0]) # 出力: 72
print(b[1]) # 出力: 101
# スライス
print(b[1:4]) # b'ell'
# 反復処理
for byte in b"ABC":
print(byte, end=" ")
print() # 出力: 65 66 67
# 文字列に戻す
b = b"Hello"
s = b.decode('utf-8')
print(s) # 出力: Hello
# bytesは不変です
# b
b = b"Hello"
print(b[0]) # 出力: 72
print(b[1]) # 出力: 101
# スライス
print(b[1:4]) # b'ell'
# 反復処理
for byte in b"ABC":
print(byte, end=" ")
print() # 出力: 65 66 67
# 文字列に戻す
b = b"Hello"
s = b.decode('utf-8')
print(s) # 出力: Hello
# bytesは不変です
# b
実行結果の予想:
72 101 b'ell' 65 66 67 Hello
bytesはインデックス、スライス、反復処理などの操作をサポートしますが、要素を変更することはできません。
その他の拡張
Python3 組み込み関数