ホームページ  >  記事  >  バックエンド開発  >  python2 文字列と python3 文字列の違い

python2 文字列と python3 文字列の違い

(*-*)浩
(*-*)浩オリジナル
2019-06-28 14:54:322303ブラウズ

Python2 では、文字列は国際文字セットと Unicode エンコーディングを完全にはサポートできません。この制限を回避するために、Python 2 では Unicode データに別の文字列型を使用します。 Unicode 文字列リテラルを入力するには、最初の引用符の前に「u」を追加します。 Python 2 の通常の文字列は、実際にはエンコードされた (非 Unicode) バイト文字列です。 Python3 では、このプレフィックス文字を追加する必要はありません。追加しないと、すべての文字列がデフォルトですでに Unicode エンコードされているため、構文エラーになります。

python2 文字列と python3 文字列の違い

ただし、python3 にはもう 1 種類の文字列があります (推奨学習: Python ビデオ チュートリアル )

type(b'132') => byte型

そしてPython2 でこのように書くとエラーが報告されます

したがって、明らかに、デコードとエンコードの使用には大きな違いがあります

Python2 のデコードは、str 型を Unicode 型に変換します

python3でのデコードはbyte型をstr型に変換することです

python3を例にします:

src = ‘你好世界’

この時のstrはstr型なのでbyte型に変換する必要がある場合

src =  src.encode('utf-8')

この時点では、src はすでにバイト型です。これを str に変換し直したい場合は、直接使用してください:

src = src .decode()

さらに、open Python3 の関数はエンコーディング パラメーターを追加します。デフォルトは UTF-8 です。つまり、開かれたファイル ハンドルが読み書きされるときに、Unicode 形式を含む str 文字のみが受信されます。

この時点でバイナリ ファイルを渡すと、次のようなエラーが報告されます。

with open('a.bin', 'w') as f:
f.write('xxx')

バイナリ ファイルの読み取りおよび書き込みを行う場合は、開く方法を指定する必要があります。 'wb' または 'rb'

さらに、Web ページをクロールするときに Web ページが正しく表示されない場合は、コンテンツをトランスコードする必要があります。

Python 関連の技術記事の詳細については、Python チュートリアル 列にアクセスして学習してください。

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。