Pythonを使い始めたばかりの多くの友人が質問に巻き込まれています:python2またはpython3を学ぶことを選択する必要があり、Python 3.7がリリースされ、現在のPythonユーザーは主にPython3.6とPython2.7を使用する必要がありますか?Pythonに切り替える必要がありますか? 3.7?
まず、python2とpython3の選択についてお話ししましょう
Pythonを使い始めたばかりの多くの友人は、「python2とpython3のどちらを学ぶべきか」という質問に苦労しています。
これに対する答えは次のとおりです。決定的なPython3!(推奨される学習:Pythonビデオチュートリアル)
しかし、まだ躊躇している初心者の友人はまだたくさんいます。それでは、なぜ誰かが私にPython2を学ぶように勧めるのですか?
実際、それは次の理由にすぎません。
1. PythonとPipの両方のダウンロード数が3を超えています。これは、2が依然として主流であることを示しています。
違う!ダウンロード数が3より2多い理由はたくさんありますが、最も重要な理由の1つは、ほとんどのオペレーティングシステム(Linuxディストリビューション)がデフォルトでPython2をインストールしていることです。人々は怠惰であり、投げるのが怠惰すぎる場合、多くの人々は2を使用します。しかし、2が下降し、3が上昇していることは議論の余地のない事実です。未来を受け入れることが王様です。
2. Python 2と3は互換性がありません。3を学ぶ場合は、2を学ぶ必要があります。
違う!Pythonには、3および2と互換性のあるコードを数分で記述できる多くの補助ライブラリが用意されています。コードをほとんど変更せずに、いくつかのパッケージをインポートするだけです。あなたは本当に最後の手段として2を使わなければなりません、あなたは3の基礎を持っています、そしてあなたは追加の学習なしですぐに2から始めることができます。
3.多くのライブラリはまだPython2のままであり、Python3は利用できません
違う!これを言った人、あなたはどのくらいPythonに注意を払っていませんか?私は市場をあまり理解していません。
py3readinessの最新の統計によると、Pipで最も人気のある(最もダウンロードされた)上位360のライブラリのうち345がすでにPython3をサポートしています。
python3_readiness.png
その中で、当面Python 3をサポートしないライブラリは15個(約4%)しか残っていません。3を使用する前に、100%まで待たなければならないことはどれくらい持続しますか?
あなたの仕事はどれほど特別なものになりますか?それを取得するには2を使用する必要がありますか?このような状況に実際に遭遇した場合でも、virtualenvやcondaなどの成熟したツールを使用して、マシン上に2の新しい環境を数分で作成し、3と完全に互換性があります。何を心配する必要がありますか?
Python 3を採用しましょう!人生は短いです、私はPython3を使用しています。
Python3.6またはPython3.7を選択します
Python 3.7がリリースされました。現在、Pythonユーザーは主にPython3.6とPython2.7を使用する必要があります。Python3.7に切り替える必要がありますか?
まず第一に、Python3.7はPython3.6へのアップグレードであることを誰もが知っている必要があります。3.7の新機能の説明への公式のPythonリンクは次のとおりです。
https://docs.python.org/3/whatsnew/3.7.html
注意する必要がある最も重要なことは、3.6と比較して、3.7は、以下を除いて、ほぼ完全に構文的に互換性があるということです。
Backwards incompatible syntax changes:
async and await are now reserved keywords.
この一節は、3.7と3.6の間の唯一の非互換性は、asyncとawaitがPython言語の予約キーワードになっていることを指摘しています。
どういう意味ですか?
import、for、whileのように、asyncとawaitの2つの単語は、システムによって特別な目的のために予約されているキーワードです。
つまり、Python 3.7では、定義された変数や関数などの名前を使用できません。
たとえば、次のように変数と関数を定義します。
async = 1
def await():
pass
Python 3.6を使用して実行します。問題はありませんが、Python3.7では次のエラーが報告されます。
SyntaxError:無効な構文
選び方は?
したがって、プロジェクトが現在Python 3.6を使用していて、プロジェクトが比較的大きい場合は、3.7への移行について心配する必要はないことを個人的にお勧めします。プロジェクトコードと依存するサードパーティライブラリのコードが3.7との互換性についてテストされているかどうかはわかりません。結局のところ、3.7は少し前にリリースされたばかりです。
たとえば、2018年7月13日に黒葉百越がこの記事を書いたとき、postgresqlデータベースのPythonAPIドライバーライブラリであるpsycopg2がPython3.7にインストールされていて、問題があったことがわかりました。
3.7pipの実行
pip install psycopg2-binary
インストールは失敗し、エラーが表示されます:pg_config実行可能ファイルが見つかりません
3.6ピップのインストールは問題ありません。
したがって、3.7が一般的に使用されるまで待ってから、それに切り替えることをお勧めします。
プロジェクトで特に使いたがっているPython3.7の新機能がない限り、Python3.7に切り替える必要があります。その場合は、オンラインになったときの問題を防ぐために、古いコードを十分にカバーするテストを実行する必要があります。
Python2.7で何をすべきですか?
また、現在のプロジェクトがPython 2.7で実行されている場合、これは主にPython2とPython3の間の移行の問題であり、構文の違いは少し大きいです。
プロジェクトのライフサイクルが比較的長い場合は、必要に応じてPython3にアップグレードすることをお勧めします。結局のところ、Python2は2020年に正式に保守されなくなり、セキュリティの脆弱性などがあるとさらに厄介になるからです。または、便利なサードパーティライブラリがあります。これらのライブラリにはPython2バージョンがない可能性があり、さらに面倒です。
プロジェクトをPython2からPython3にアップグレードする場合は、業界で現在3.6がサポートされていることが比較的一般的であるため、最初にPython3.6にアップグレードできます。将来的に3.7のサポートがより一般的になった後は、アップグレードするのに遅すぎることはありません。
総括する:
これが今日私が共有したいことであり、それがすべての人に役立つことを願っています。
終わり:
私はPython開発エンジニアであり、Web開発、クローラー、データ分析、データ視覚化、機械学習、インタビューコレクションへの基本的なPythonスクリプトを含む、最新のPythonシステム学習チュートリアルのセットをまとめました。これらの資料が必要な場合は、エディターに注意を払い、Qスカート851211580を追加してPythonの学習資料と学習ビデオを入手し、偉大な神からのオンラインガイダンスを入手してください。