Python 文字列と関係すること

Tomorin
リリース: 2018-08-23 17:47:29
オリジナル
1292 人が閲覧しました

この章では、Python 文字列の書き方と処理について紹介します。その前に、やっかいな文字エンコーディングの問題を解決した後、Python 文字列について勉強します。

最新の Python 3 バージョンでは、文字列は Unicode でエンコードされます。つまり、Python 文字列は複数の言語をサポートします。例:

>>> print('包含中文的str') 包含中文的str
ログイン後にコピー

単一文字のencodingについて、Pythonは、文字の整数表現chr()## を取得するord()関数を提供します。 #関数はエンコーディングを対応する文字に変換します:

>>> ord('A') 65 >>> ord('中') 20013 >>> chr(66) 'B' >>> chr(25991) '文'
ログイン後にコピー

文字の整数エンコーディングがわかっている場合は、str を 16 進数で記述することもできます:

>>> '\u4e2d\u6587' '中文'
ログイン後にコピー

2 つの記述方法は完全に同等です. .

Python の文字列

型は str なので、メモリ上では Unicode で表現され、1 文字が数バイトに相当します。ネットワーク経由で送信したり、ディスクに保存したりする場合は、str をバイト単位のバイトに変更する必要があります。Python では、バイト型データに対して単一引用符または b プレフィックスが付いた二重引用符を使用します:

x = b'ABC'
ログイン後にコピー

'ABC' と b'ABC' を区別するように注意してください。前者は str で、後者は str です。内容は前者と同じように表示されますが、バイトの各文字は 1 バイトしか占有しません。

Unicode で表現された Str は、encode() メソッドを使用して指定したバイトにエンコードできます。例:

>>> 'ABC'.encode('ascii') b'ABC' >>> '中文'.encode('utf-8') b'\xe4\xb8\xad\xe6\x96\x87' >>> '中文'.encode('ascii') Traceback (most recent call last): File "", line 1, in UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128)
ログイン後にコピー

純粋な英語の str は、ASCII を使用してバイトにエンコードでき、内容は同じです。中国語を含む str は、UTF-8 を使用してバイトにエンコードできます。中国語を含む Str は ASCII でエンコードできません。中国語のエンコードの範囲が ASCII エンコードの範囲を超えているため、Python はエラーを報告します。

バイト単位の場合、ASCII文字として表示できないバイトは\x##で表示されます。

逆に、ネットワークまたはディスクからバイト ストリームを読み取る場合、読み取られるデータはバイトです。バイトを str に変更するには、decode() メソッドを使用する必要があります:

>>> b'ABC'.decode('ascii') 'ABC' >>> b'\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8') '中文'
ログイン後にコピー

bytes にデコードできないバイトが含まれている場合、decode() メソッドはエラーを報告します:

>>> b'\xe4\xb8\xad\xff'.decode('utf-8') Traceback (most recent call last): ... UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 3: invalid start byte
ログイン後にコピー

上記は Python 文字列プログラミングの問題です。

以上がPython 文字列と関係することの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!