ホームページ  >  記事  >  バックエンド開発  >  Python 2 と Python 3 のバージョンとエンコーディングの比較

Python 2 と Python 3 のバージョンとエンコーディングの比較

高洛峰
高洛峰オリジナル
2017-02-17 11:52:571086ブラウズ

1. バージョンの比較

まず最初に言っておきたいのは、Python のバージョンは現在主に 2 つのカテゴリに分類されているということです:

Python 2.x バージョンは Python2 と呼ばれます: Python 2.7.3 など、現在最も広く使用されています。

Python 3.x バージョンは Python3 と呼ばれます。これは、Python 3.1 などの最新バージョンです。長期的には、それが今後のトレンドと考えられます。

[Python2とPython3の違い]

1. Python2からPython3では、多くの基本的な関数のインターフェースが削除され、名前が変更されました

Python2とPython3には、多くの基本的な関数があります。最も一般的に使用される関数のインターフェイスが変更されました。最も一般的なものは、最も一般的に使用される印刷関数です。

2. サードパーティ ライブラリのサポートに関しては、現在 Python2 が最もサポートされており、Python3 は十分にサポートされていません

Python が強力である理由の 1 つは、多くのサードパーティ ライブラリとその機能です。とてもパワフルな。

現在、Python 用のサードパーティ ライブラリが多数ありますが、その多くは Python2 のみを提供しています。

あるいは、Python3 が提供されていても、あまり成熟していない可能性があります。

2. エンコーディングの比較

Python 2 であろうと Python3 であろうと、一般的に言えば、文字のカテゴリは 2 つだけです。

  1. 一般的な Unicode 文字

  2. 特定のエンコーディングの文字UTF-8、GBK、その他の文字タイプなど。中Python2 文字型:

Str: エンコードされたバイト列

  • Unicode: エンコード前のテキスト文字

  • Python3 文字型:

str: エンコードされた Unicode テキスト文字

  • bytes: エンコード前のバイト シーケンス

  • 文字列には 2 つの状態、つまりテキスト状態とバイト (バイナリ) 状態があると考えることができます。 Python2 と Python3 の 2 つの文字タイプは、それぞれこれら 2 つの状態に対応し、相互にエンコードおよびデコードを行います。エンコードは文字列をバイトコードに変換することであり、これには文字列の内部表現が含まれます。デコードはバイトコードを文字列に変換し、ビットを文字に表示することです。

    Python2では、strとunicodeの両方にencodeメソッドとdecodeメソッドがあります。ただし、str に encode を使用し、unicode に decode を使用することは推奨されません。これは Python2 の設計上の欠陥です。 Python3 は最適化されており、str には文字列をバイトコードに変換するためのエンコード メソッドが 1 つだけあり、bytes にはバイトコードをテキスト文字列に変換するためのデコード メソッドが 1 つだけあります。
Python2 の str と unicode は両方とも Basestring のサブクラスであるため、この 2 つは直接結合できます。 Python3 では、bytes と str は 2 つの独立した型であり、結合することはできません。

Python2 では、引用符で囲まれた通常の文字は str です。このとき、文字列のエンコーディング タイプは、Python ファイル自体が保存されるエンコーディングに対応します。最も一般的な Windows プラットフォームでは、デフォルトは GBK です。 Python3 では、一重引用符または二重引用符で囲まれた文字列はすでに Unicode 型 str です。

str のエンコーディングにはいくつかの前提条件があります:

対応するエンコーディングは Python ファイルの先頭で宣言されています

  1. Python ファイル自体は実際にこのエンコーディングを使用して保存されます

  2. エンコーディング タイプこの 2 つは同じである必要があります (たとえば、すべてが UTF-8 であるか、すべてが GBK であるなど)。

  3. このようにして、Python パーサーはテキストを対応するエンコーディング str に正しく解析できます。

    一般に、Python3 では文字エンコーディングの問題が大幅に最適化されており、Python2 ほど頭痛の種ではなくなりました。 Python3 では、テキストは常に str 型で表される Unicode であり、バイナリ データは str と bytes が密かに混在していないため、この 2 つの違いがより明確になります。

概要

上記がこの記事の全内容です。この記事の内容が Python の学習や使用に役立つことを願っています。ご質問がある場合は、メッセージを残してください。 PHP 中国語 Web サイトをサポートしていただきありがとうございます。

Python 2 と Python 3 のバージョンの比較とコーディングに関連するその他の記事については、PHP 中国語 Web サイトに注目してください。

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