Pythonでのバイトオブジェクトと文字列
コンピュータはバイトのデータしか保存できないため、さまざまなデータ形式をバイトデータ形式に変換する必要があります。たとえば、バイトになる画像は、PNG、JPEGなどで保存されます。同様に、音楽は.WAV、.MP3などとして保存されます。この形式の作成と管理を担当するソフトウェアは、このデータをバイトに変換して、保存されます。 Pythonでは、バイトオブジェクトは人間が読めないバイトのシーケンスです。ただし、文字列は人間が読める文字列です。文字は、コンピュータにバイトとして保存される前にエンコードされます。
エンコーディング
文字列をディスクに保存する前に、エンコードする必要があります。文字列をエンコードするPythonの関数は、次のようにエンコードされます。ここではASCIIエンコーディングを適用しています。
例
print('Best Tutorials'.encode('ASCII'))
出力
上記のコードを実行すると、次の結果が得られます-
b'Best Tutorials'
デコード
バイトがディスクから読み取られるとき、人間が読めるようにするには、デコードする必要があります。 Pythonでは、decode関数を使用して、エンコードされたバイトを文字列に変換できます。
例
print(b'Best Tutorials'.decode('ASCII'))
出力
上記のコードを実行すると、次の結果が得られます-
Best Tutorials
注意すべき重要なポイントは次のとおりです。
- 文字列は文字のシーケンスですが、バイトオブジェクトはバイトのシーケンスです。
- 文字列は人間が読める形式のみですが、バイトは機械が読める形式です。
- バイトはディスクに直接保存されますが、文字はディスクに保存される前にエンコードする必要があります。
-
指定された文字列がパングラムであるかどうかを確認するPythonプログラム
この記事では、特定の問題ステートメントを解決するための解決策とアプローチについて学習します。 問題の説明 文字列入力が与えられた場合、その文字列がパングラムであるかどうかを確認するPythonプログラムを生成する必要があります。 パングラムは、英語のアルファベットコレクションのすべての文字を含む文/一連の単語です。 では、問題を解決する方法を見てみましょう 入力文字列に存在する各文字が、手動で宣言するアルファベットセットに属しているかどうかをチェックするループを使用します。 上記のアプローチの実装は、-によって与えられます。 例 import string def ispangram
-
Pythonで不変の文字列のIDを変更するにはどうすればよいですか?
Pythonの文字列は不変です。つまり、文字列が作成されると、変更することはできません。文字列を作成するとき、同じ文字列を作成して別の変数に割り当てると、両方が同じ文字列/メモリを指します。たとえば、 >>> a = 'hi' >>> b = 'hi' >>> id(a) 43706848L >>> id(b) 43706848L この文字列オブジェクトの再利用は、Pythonではインターンと呼ばれます。同じ文字列は同じIDを持ちます。ただし、Pythonは文字列をインターンすることが保証