ホームページ  >  記事  >  バックエンド開発  >  Python学習【前編】Python入門

Python学習【前編】Python入門

高洛峰
高洛峰オリジナル
2017-02-13 17:18:301372ブラウズ
  1. Pythonの概要

  2. 開発の歴史

  3. Python 2か3?

1. Pythonの概要

Pythonの創設者はGuido van Rossumです。 1989 年のクリスマス期間、アムステルダムで時間を潰すために、Guido van Rossum は ABC 言語の後継となる新しいスクリプト インタプリタを開発することにしました。


最新の TIOBE ランキングでは、Python が PHP を追い越して 5 位を占め、優雅さ、明快さ、シンプルさを提唱しており、広く使用されている優れた言語です。

Python は、データ分析、コンポーネント統合、ネットワーク サービス、画像処理、数値計算、科学技術計算、その他多くの分野など、多くの分野で使用できます。現在、Youtube、Dropbox、BT、Quora (中国 Zhihu)、Douban、Zhihu、Google、Yahoo!、Facebook、NASA、Baidu、Tencent など、業界の大中規模インターネット企業のほぼすべてが Python を使用しています。 、オートホーム、美団など。インターネット企業が広く Python を使用して行うことには、一般に、自動運用保守、自動テスト、ビッグデータ分析、クローラ、Web などが含まれます。

現在のPythonの主な応用分野:

  • クラウドコンピューティング:クラウドコンピューティングで最も人気のある言語、代表的なアプリケーションOpenStack

  • WEB開発:多くの優れたWEBフレームワーク、多くの大規模なWebサイトがPython、Youtube、ドロップボックス、ドゥーバン。 。 。 , 代表的なWEBフレームワークにはDjango

  • 科学計算、人工知能:代表的なライブラリNumPy、SciPy、Matplotlib、Enthoughtライブラリ、pandas

  • システム運用保守:運用保守に必要な言語の一つ人事

  • 財務:定量取引、財務分析、金融工学の分野では、Pythonは使用されているだけでなく、最も多く使用されており、その重要性は年々高まっています。理由: 動的言語として、Python は明確でシンプルな言語構造、豊富なライブラリ、成熟して安定した効率的な科学計算と統計分析を備えており、特にその生産効率は C、C++、Java よりもはるかに高いです。戦略のバックテストが得意です

  • グラフィックGUI: PyQT、WxPython、TkInter

Pythonと他の一般的な言語の比較

CとPython、Java、C#など

C言語: コードコンパイルされてマシン コードが取得され、そのマシン コードがプロセッサ上で直接実行されます。1 つの命令が CPU の動作を制御します。

その他の言語: コードはバイトコードを取得するためにコンパイルされ、仮想マシンがそのバイトコードを実行してマシン コードに変換し、次にプロセッサ上で実行します

Python と C Python は C から開発された言語です

使用方法: Python のクラスライブラリは完全で使いやすいです 同じ機能を実現したい場合、Python は 10 行で解決できます。コード、一方 C は 100 行以上を必要とする場合があります。
速度について: 高級言語は実行速度の点で Python に匹敵することはできません

Python や Java、C# などと比較してください

用途: Linux。オリジナルの Python には、他の言語にはありません。上記の言語には非常に豊富なクラス ライブラリのサポートがあります
速度に関しては、Python の方が若干劣る可能性があります

したがって、Python と他の言語の間に本質的な違いはありません。その他の違いは、特定の分野に優れていること、豊かな才能を持っていること、そして先入観があることです。

Python は動的に解釈される強く型付けされた定義言語です

利点:

  1. Python の位置付けは「エレガント」、「明確」、「シンプル」であるため、Python プログラムは常にシンプルに見え、理解しやすいです。 Python を学習する初心者は、簡単に始めることができるだけでなく、将来的にはさらに深く学習すると、非常に複雑なプログラムを作成することもできます。

  2. Python には非常に強力なサードパーティ ライブラリがあり、コンピュータを介して機能を実現したい場合は、Python 公式ライブラリを直接ダウンロードして呼び出すと、対応するモジュールが提供されます。基本ライブラリに基づいて開発がトップで実行されるため、開発サイクルが大幅に短縮され、車輪の再発明が回避されます。

  3. 高級言語————Python 言語でプログラムを作成する場合、プログラムで使用されるメモリの管理方法などの低レベルの詳細について考える必要はありません

  4. 移植性— ———そのため オープンソースの性質により、Python は多くのプラットフォームに移植されています (さまざまなプラットフォームで動作できるようにするための変更が加えられています)。システムに依存する機能の使用を慎重に避ければ、すべての Python プログラムは、市場のほぼすべてのシステム プラットフォーム上で変更なしで実行できます

  5. スケーラビリティ————コードの実行を高速化するため、または維持するためにキーが必要な場合特定のアルゴリズムは非公開なので、プログラムの一部を C または C++ で作成し、Python プログラムで使用できます。

  6. 埋め込み可能性—C/C++ プログラムに Python を埋め込んで、プログラム ユーザーにスクリプト機能を提供できます。

短所:

  1. 遅い。Python の実行速度は C 言語よりもはるかに遅く、また Java よりも遅いです。Python はインタープリタ言語であるため、コードは実行中に CPU が理解できるマシンに 1 行ずつ変換されます。翻訳プロセスは非常に時間がかかるため、非常に遅くなります。 C プログラムは、実行前に CPU が実行できるマシンコードに直接コンパイルされるため、非常に高速です。しかし、実際には、ここで言及されている実行速度の遅さは、ほとんどの場合、ユーザーが直接認識することはできず、テスト ツールの助けを借りて反映する必要があります。

  2. PYTHON はインタープリタ型言語であり、ソース コードはテキスト形式で保存されるため、コードを暗号化することはできません。ただし、プロジェクトでソース コードを暗号化する必要がある場合、これが欠点になるとは思いません。 , それなら、そもそも Python で実装すべきではありません。

  3. スレッドはマルチ CPU 問題を利用できません。これは Python の最も批判されている欠点の 1 つです。GIL は、スレッドを同期するためにコンピューター プログラミング言語インタープリターによって使用されるツールです。常にスレッドを同期します。実行されるスレッドは 1 つだけです。Python のスレッドはオペレーティング システムのネイティブ スレッドです。 Linux では pthread、Windows では Win スレッドです。スレッドの実行はオペレーティング システムによって完全にスケジュールされます。 Python インタープリター プロセスには、メイン スレッドと複数のユーザー プログラム実行スレッドがあります。マルチコア CPU プラットフォームであっても、GIL の存在によりマルチスレッドの並列実行は禁止されています。この問題の妥協的な解決策については、後のスレッドとプロセスの章で詳しく説明します。

Python の種類

Python コードを作成すると、Python コードを含む .py 拡張子が付いたテキスト ファイルが得られます。コードを実行するには、.py ファイルを実行するための Python インタープリターが必要です。

Python言語は仕様からインタープリターまでオープンソースなので、理論上は十分なレベルであれば誰でもPythonコードを実行するためのPythonインタープリターを書くことができます(もちろん非常に難しいですが)。実際、複数の Python インタープリターが存在します。

CPython

Python の公式 Web サイトから Python 2.7 をダウンロードしてインストールすると、インタプリタの公式バージョンである CPython を直接入手できます。このインタプリタはC言語で開発されているため、CPythonと呼ばれます。コマンドラインから Python を実行すると、CPython インタープリターが起動します。

CPython は最も広く使用されている Python インタープリターです。チュートリアルのすべてのコードも CPython で実行されます。

IPython

IPython は CPython をベースにした対話型インタープリターです。つまり、IPython は対話モードでのみ強化されていますが、Python コードを実行する機能は CPython とまったく同じです。たとえば、国内の多くのブラウザは外観は異なりますが、実際にはコアは IE を呼び出しています。

CPython はプロンプトとして >>> を使用しますが、IPython はプロンプトとして In [シリアル番号]: を使用します。

PyPy

PyPy は、実行速度を目的とした別の Python インタープリターです。 PyPy は JIT テクノロジーを使用して Python コードを動的にコンパイルするため、Python コードの実行速度を大幅に向上させることができます。

ほとんどの Python コードは PyPy で実行できますが、PyPy と CPython の間にはいくつかの違いがあり、同じ Python コードを 2 つのインタープリターで実行すると異なる結果が生じます。コードを PyPy で実行する場合は、PyPy と CPython の違いを理解する必要があります。

Jython

Jython は、Java プラットフォーム上で実行される Python インタープリターで、Python コードを Java バイトコードに直接コンパイルして実行できます。

IronPython

IronPython は Jython に似ていますが、IronPython は Microsoft .Net プラットフォーム上で実行される Python インタープリターであり、Python コードを .Net バイトコードに直接コンパイルできる点が異なります。

概要

Python インタープリターは数多くありますが、最も広く使用されているのは CPython です。 Java または .Net プラットフォームと対話する場合、最善の方法は、Jython または IronPython を使用するのではなく、プログラム間の独立性を確保するためにネットワーク呼び出しを通じて対話することです。

2. Python 開発の歴史

  • 1989 年、クリスマス休暇を過ごすために、Guido は Python 言語のコンパイラーを書き始めました。パイソンという名前は、グイドのお気に入りのテレビ シリーズ「モンティ パイソンのフライング サーカス」に由来しています。彼は、Python と呼ばれるこの新しい言語が、C とシェルの間で包括的で、学習しやすく、使いやすく、スケーラブルな言語を作成するという彼の理想を満たせることを望んでいます。

  • 1991 年に、最初の Python コンパイラーが誕生しました。 C言語で実装されており、C言語ライブラリファイルを呼び出すことができます。 Python はその誕生以来、クラス、関数、例外処理、テーブルや辞書を含むコア データ型、モジュールベースの拡張システムを備えています。

  • Python Web フレームワークの祖父である Zope 1 は 1999 年にリリースされました

  • Python 1.0 - 1994 年 1 月にラムダ、マップ、フィルター、リデュースが追加されました。

  • Python 2.0 - 2000 年 10 月 16 日、メモリが追加されましたこのメカニズムは、現在の Python 言語フレームワークの基礎を形成します

  • Python 2.4 - 最も人気のある WEB フレームワーク Django が誕生したのと同じ年、2004 年 11 月 30 日

  • Python 2.5 - 2006 年 9 月 19 日

  • Python 2.6 - 2008 年 10 月 1 日

  • Python 2.7 - 2010 年 7 月 3 日

  • 2014 年 11 月、Python 2.7 は 2020 年までサポートされると発表され、ユーザーは Python 3.4 以降に移行することが予想されるため、2.8 リリースは存在しないことが再確認されました。できるだけ早く

  • Python 3.0 - 2008年12月3日

  • Python 3.1 - 2009年6月27日

  • Python 3.2 - 2011年2月20日

  • Python 3.3 - 9月2日2012年9月9日

  • Python 3.4 - 2014 年 3 月 16 日

  • Python 3.5 - 2015 年 9 月 13 日

三、Python 2 または 3?

要約: Python 2.x はレガシー、Python 3.x は言語の現在と未来

Python 3.0 は 2008 年にリリースされました。最後の 2.x バージョン 2.7 リリースは 2010 年半ばにリリースされ、このサポート終了リリースの

延長サポートが宣言されました。 2.x ブランチには、それ以降新しいメジャー リリースはありません。 3.x は活発な開発が行われており、2012 年のバージョン 3.3、2014 年のバージョン 3.4、2015 年の 3.5 など、すでに 5 年以上にわたって安定版リリースが行われています。これは、たとえば、最近の標準ライブラリのすべての改善が、デフォルトで Python 3.x でのみ利用可能

Guido van Rossum (Python 言語のオリジナルの作成者) は、Python 2.x の場合ほど下位互換性を考慮せずに、Python 2.x を適切にクリーンアップすることにしました。 2.x 範囲の新しいリリース。最も抜本的な改善は、より優れた Unicode サポート (デフォルトですべてのテキスト文字列が Unicode である) と、バイトと Unicode の分離がより正確になったことです。


それに加えて、コア言語のいくつかの側面 (print と exec がステートメントである、整数がフロアを使用するなど) pision) は、初心者にとって学びやすく、言語の残りの部分との一貫性がより高まるように調整され、古い不要なものは削除されました (たとえば、すべてのクラスが新しいスタイルになり、「range()」はメモリを返します) 2.x のようなリストではなく、効率的な反復可能です)。 

py2与3の详细区别

PRINT IS A FUNCTION

このステートメントは print() 関数に置き換えられ、古いステートメントの特殊な構文の大部分を置き換えるためのキーワード引数が追加されました (PEP 3105)。例:

Old: print "The answer is", 2*2 New: print("The answer is", 2*2)
Old: print x, # Trailing comma suppresses newline New: print(x, end=" ") # Appends a space instead of a newline
Old: print # Prints a newline
New: print() # You must call the function!
Old: print >>sys.stderr, "fatal error" New: print("fatal error", file=sys.stderr)
Old: print (x, y) # prints repr((x, y))
New: print((x, y)) # Not the same as print(x, y)!

項目間の区切り文字をカスタマイズすることもできます。例:

print("There are <", 2**32, "> possibilities!", sep=""

ALL IS UNICODE NOW


从これはもう讨厌の文字符编Д烦恼

も可能です这样: (A、 *REST,B)=RANGE(5)

<strong>>>> a,*rest,b = range(5)
>>> a,rest,b
(0, [1, 2, 3], 4)
</strong>

一部変更名完了



旧名



新規名前



_winreg



winreg



ConfigParser



configparser



copy_reg



copyreg



キュー



キュー



ソケットサーバー



ソケットサーバー



markupbase



_markupbase



repr



reprlib



test.test_support



test.support






还有谁不支持PYTHON3?

Python 3 をまだサポートしていない人気のあるモジュールの 1 つは、Twisted (ネットワークおよびその他のアプリケーション用) です。ほとんど


積極的にメンテナンスされているライブラリには、3.x のサポートに取り組んでいる人がいます。一部のライブラリでは、他のライブラリよりも優先度が高くなります。たとえば、Twisted は主に運用サーバーに重点を置いており、言語の大幅な変更を含む新しいバージョンのサポートは言うまでもなく、古いバージョンの Python のサポートが重要です。 。 (Twisted は、3.x への移植が決して簡単ではない主要なパッケージの代表的な例です

更多Python学习【第一篇】Python简介相关文章请关注PHP中文网!

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