Python について何を知っていますか?

1. はじめに

Python は、ABC と呼ばれる言語の代替として、オランダ数学コンピューター サイエンス研究所のグイド ヴァン ロッサムによって 1990 年代初頭に設計されました。

Python は効率的な高レベルのデータ構造を提供し、シンプルかつ効果的なオブジェクト指向プログラミングを可能にします。Python の構文と動的型付け、およびインタープリタ型言語の性質により、Python はほとんどのプラットフォームでスクリプト作成と迅速なアプリケーション開発のためのプログラミング言語となっています。バージョンの継続的な更新と新しい言語機能の追加により、Python は徐々に使用されています。独立した大規模プロジェクト開発向け。
Python インタープリターは、C または C++ (または C から呼び出し可能な他の言語) を使用して、新しい機能とデータ型で簡単に拡張できます。Python は、カスタマイズ可能なソフトウェアの拡張プログラミング言語としても使用できます。

Python の豊富な標準ライブラリは、各主要なシステム プラットフォームに適したソース コードまたはマシン コードを提供します。

2021 年 10 月、Language Popularity Index のコンパイラーである Tiobe は、Python を最も人気のあるプログラミング言語として表彰し、20 年間で初めて Java、C、JavaScript を上回りました。

2. 開発プロセス

Python 言語は 1990 年代初頭に誕生して以来、システム管理タスクの処理や Web プログラミングで徐々に広く使用されるようになりました。

1995 年、Guido van Rossum はバージニア州の National Research Innovation (CNRI) で Python の研究を続け、そこでソフトウェアのいくつかのバージョンをリリースしました。

2000 年 5 月、Guido van Rossum と Python コア開発チームは BeOpen.com に移動し、BeOpen PythonLabs チームを結成しました。同年の 10 月に、BeOpen PythonLabs チームは Digital Creations (現在の Zope Corporation) に移転しました。

2001 年に、Python 関連の知的財産を所有することを目的として設立された非営利組織、Python Software Foundation (PSF) が設立されました。Zope Corporation は現在、PSF のスポンサーメンバーです。

Python の創始者はオランダ人のグイド・ヴァン・ロッサムです。1989 年のクリスマス期間中、グイドはアムステルダムで、クリスマスの退屈を紛らわすために、ABC 言語の継承として新しいスクリプト インタプリタを開発することにしました。Python(ボアコンストリクターの意味)がプログラミング言語の名前として選ばれた理由は、1970年代に初放送された英国のテレビコメディ「モンティ・パイソンのフライング・サーカス」から取られました。

ABC はグイド氏が共同設計した教育言語です。Guido 氏の意見では、ABC という言語は非常に美しく強力であり、特にプロ以外のプログラマー向けに設計されています。しかし、ABC 言語が成功しなかった理由は、ABC 言語がオープンではないためだとグイド氏は考えています。Guido は Python でこの間違いを避けようと決意しています。同時に、彼はABCで閃いたものの実現しなかった何かを達成したいとも考えていました。

このようにして、Python は Guido の手によって誕生しました。Python は ABC から発展し、主に Modula-3 (小グループ向けに設計されたもう 1 つの非常に美しく強力な言語) の影響を受けたと言えます。Unix シェルと C の習慣を組み合わせます。

Python は最も人気のあるプログラミング言語の 1 つになりました。2004 年以来、Python の使用量は直線的に増加しました。Python 2 は 2000 年 10 月 16 日にリリースされ、安定バージョンは Python 2.7 です。Python 3 は 2008 年 12 月 3 日にリリースされましたが、Python 2 と完全な互換性はありません。2011 年 1 月には、TIOBE プログラミング言語ランキングによって 2010 年度の言語に選ばれました。

Python 言語のシンプルさ、読みやすさ、拡張性のおかげで、海外では科学計算に Python を使用する研究機関が増えており、一部の有名大学ではプログラミング コースの授業に Python を採用しています。たとえば、カーネギー メロン大学ではプログラミングの基礎が、MIT ではコンピューター サイエンスとプログラミングの入門が Python 言語を使用して教えられます。有名なコンピューター ビジョン ライブラリ OpenCV、3 次元視覚化ライブラリ VTK、医療画像処理ライブラリ ITK など、多くのオープン ソース科学技術計算ソフトウェア パッケージは Python 呼び出しインターフェイスを提供しています。Python 専用の科学計算拡張ライブラリはさらに多くあります。たとえば、次の 3 つの非常に古典的な科学計算拡張ライブラリ、NumPy、SciPy、matplotlib は、それぞれ Python に高速な配列処理、数値演算、描画関数を提供します。したがって、Python 言語とその多数の拡張ライブラリで構成される開発環境は、工学研究者や科学研究者が実験データを処理したり、グラフを作成したり、科学技術計算アプリケーションを開発したりするのに非常に適しています。2018 年 3 月、言語の作者はメーリング リストで、Python 2.7 が 2020 年 1 月 1 日にサポートを終了すると発表しました。この日以降も Python 2.7 関連のサポートを受け続けたいユーザーは、商用プロバイダーに料金を支払う必要があります。

3. 言語の特徴

アドバンテージ

シンプルさ: Python はシンプルさの概念を表す言語です。優れた Python プログラムを読むのは、英語を読んでいるような気分になります。これにより、言語自体を理解するのではなく、問題を解決することに集中できます。

学習が簡単: Python には非常にシンプルなドキュメントがあるため、Python を始めるのは非常に簡単です [9]。

読みやすく維持しやすい: 明確で一貫したスタイル、強制インデント

多くの用途があります

高速: Python の最下層は C 言語で書かれており、多くの標準ライブラリやサードパーティ ライブラリも C で書かれているため、非常に高速に実行されます。[7]

無料でオープンソース: Python は FLOSS (Free/Open Source Software) の 1 つです。ユーザーは、このソフトウェアのコピーを自由に配布し、そのソース コードを読み、変更を加え、新しいフリー ソフトウェアでその一部を使用することができます。FLOSS は、知識を共有するグループの概念に基づいています。

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

移植性: Python はオープン ソースの性質により、多くのプラットフォームに移植されています (さまざまなプラットフォームで動作できるようにするための変更が加えられています)。これらのプラットフォームには、Linux、Windows、FreeBSD、Macintosh、Solaris、OS/2、Amiga、AROS、AS/400、BeOS、OS/390、z/OS、Palm OS、QNX、VMS、Psion、Acom RISC OS、VxWorks、 PlayStation、Sharp Zaurus、Windows CE、PocketPC、Symbian、および Linux ベースの Google の Android プラットフォーム。

解釈性: C や C++ などのコンパイル済み言語で書かれたプログラムは、ソース ファイル (C 言語または C++ 言語) からコンピュータで使用される言語 (バイナリ コード、つまり 0 と 1) に変換できます。このプロセスは、コンパイラとさまざまなフラグおよびオプションを通じて実行されます。プログラムを実行すると、リンカ/再プリンタ ソフトウェアはプログラムをハード ドライブからメモリにコピーして実行します。Python で書かれたプログラムは、バイナリ コードにコンパイルする必要はありません。ソース コードから直接プログラムを実行できます。コンピューター内部では、Python インタープリターがソース コードをバイトコードと呼ばれる中間形式に変換し、その後コンピューターで使用される機械語に翻訳されて実行されます。これにより、Python の使用がはるかに簡単になります。また、Python プログラムの移植性も高まります。

オブジェクト指向: Python は手続き型プログラミングとオブジェクト指向プログラミングの両方をサポートします。「手続き指向」言語では、プログラムは手続きまたは再利用可能なコードである単なる関数から構築されます。「オブジェクト指向」言語では、プログラムはデータと機能を組み合わせたオブジェクトから構築されます。Python は完全なオブジェクト指向言語です。関数、モジュール、数値、文字列はすべてオブジェクトです。また、継承、オーバーロード、派生、多重継承を完全にサポートしているため、ソース コードの再利用性を高めることができます。Python は、オーバーロードされた演算子と動的型付けをサポートしています。従来の関数型プログラミング言語である Lisp と比較すると、Python は関数型設計に対する限定的なサポートしか提供しません。Haskell および Standard ML で実証済みの関数型プログラミング ツールを提供する 2 つの標準ライブラリ (functools、itertools) があります。

スケーラビリティと拡張性: 重要なコード部分を高速に実行する必要がある場合、または一部のアルゴリズムを公開したくない場合は、プログラムの一部を C または C++ で作成し、Python プログラムで使用できます。Python 自体は拡張可能に設計されています。すべての機能が言語コアに統合されているわけではありません。Python は、プログラマーが C 言語、C++、および Cython を使用して拡張モジュールを簡単に作成できるように、豊富な API とツールを提供します。Python コンパイラー自体を、スクリプト言語を必要とする他のプログラムに統合することもできます。そのため、Python を「接着言語」として使用する人も多くいます。Python を使用して、他の言語で書かれたプログラムを統合し、カプセル化します。Google エンジンなど、Google 内の多くのプロジェクトは、C++ を使用して非常に高いパフォーマンス要件を必要とする部分を記述し、Python または Java/Go を使用して対応するモジュールを呼び出します。「Python Technical Manual」の著者である Alex Martelli 氏は、「言うのは難しいですが、2004 年に Python はすでに Google 社内で使用されていました。Google は多くの Python 専門家を採用しましたが、その前にすでに Python を使用することを決定していました。」と述べています。可能な場合は Python を使用し、必要な場合は C++ を使用し、ハードウェアを制御する場合は C++ を使用し、迅速な開発には Python を使用します。」

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

豊富なライブラリ: Python の標準ライブラリは実に膨大です。正規表現、ドキュメント生成、単体テスト、スレッド、データベース、Web ブラウザ、CGI、FTP、電子メール、XML、XML-RPC、HTML、WAV ファイル、暗号化、GUI (グラフィカル ユーザー インターフェイス) などのさまざまなタスクに役立ちます。 )、Tk、およびその他のシステム関連の操作。これは、Python の「フル機能」の哲学と呼ばれます。標準ライブラリに加えて、wxPython、Twisted、Python イメージング ライブラリなど、他にも多くの高品質ライブラリがあります。

標準化されたコード: Python はコードを読みやすくするために強制インデントを使用します。Python で書かれたプログラムは、バイナリ コードにコンパイルする必要はありません。Python の作成者は、プログラミングの悪い習慣 (if ステートメントで右の次の行をインデントしないなど) がコンパイルできないように、非常に制限的な構文を設計しました。最も重要なものの 1 つは、Python のインデント規則です。他のほとんどの言語 (C など) との違いの 1 つは、モジュールの境界がこの行の各行の最初の文字の位置によって完全に決定されることです (一方、C 言語では明確に決定するために 1 対の中括弧 {} を使用します)モジュールの境界の外側にあり、文字の位置とは関係がありません)。Python は、プログラマにインデントを強制することにより (モジュールが使用される if、for、および関数の定義を含む)、プログラムをより明確で美しくします。

高度な動的プログラミング: Python は大まかに「スクリプト言語」(スクリプト言語) に分類されるかもしれませんが、実際には Zope、Mnet、BitTorrent などの大規模なソフトウェア開発プロジェクトで広く使用されており、Google も広く使用しています。Python の支持者は、Python を高水準動的プログラミング言語と呼ぶことを好みます。その理由は、「スクリプト言語」とは一般に、シェルスクリプト、VBScript、その他のプログラミング言語など、単純なプログラミング タスクのみを実行する言語を指すためです。単純なタスクのみを処理するため、Python と比較することはできませんが、Python は同等です。

科学計算を行うことには多くの利点があります。科学計算について話すとき、最初に名前が挙がるのは MATLAB かもしれません。代替できない MATLAB の一部の高度に専門的なツールボックスを除いて、MATLAB の一般的な関数のほとんどは、Python 世界の対応する拡張ライブラリにあります。MATLAB と比較して、科学計算に Python を使用することには次の利点があります。

● まず、MATLAB は商用ソフトウェアであり、高価です。Python は完全に無料であり、多くのオープンソース科学計算ライブラリが Python 呼び出しインターフェイスを提供しています。ユーザーは、Python とその拡張ライブラリのほとんどを任意のコンピュータに無料でインストールできます。

● 第二に、MATLAB と比較して、Python は学習が容易で、より厳密なプログラミング言語です。これにより、ユーザーは読みやすく保守しやすいコードを作成できるようになります。

● 最後に、MATLAB は主にエンジニアリングと科学コンピューティングに焦点を当てています。しかし、コンピューティング分野においても、ファイル管理、インターフェイス設計、ネットワーク通信など、さまざまなニーズが頻繁に発生します。Python には、さまざまな高度なタスクを簡単に実行できる豊富な拡張ライブラリがあり、開発者は Python を使用して、完全なアプリケーションに必要なさまざまな機能を実装できます。

欠点がある

単一行ステートメントとコマンド ライン出力の問題: import sys; for i in sys.path:print i のように、プログラムを 1 行で記述することができないことがよくあります。Perl と awk にはこの制限がなく、シェルの下で簡単なプログラムを簡単に完成させることができ、Python のようにプログラムを .py ファイルに書き込む必要がありません。

初心者を混乱させる: 独特の構文は制限とは言えないかもしれませんが、インデントを使用してステートメントの関係を区別する方法は、依然として多くの初心者に混乱をもたらしています。経験豊富な Python プログラマーでも罠に陥る可能性があります。

実行速度が遅い: C および C++ と比較して。Python 開発者は、未熟な最適化や重要でない最適化を避けようとします。コードの重要ではない部分を高速化するパッチは、通常、Python には組み込まれません。非常に多くの人が Python は遅いと考えています。ただし、80/20 ルールによれば、ほとんどのプログラムには高速性の要件はありません。実行速度が非常に高い状況では、Python 設計者は JIT テクノロジを使用するか、プログラムのこの部分を C/C++ 言語で書き直す傾向があります。利用可能な JIT テクノロジは PyPy です。

4. 他の言語との違い

特定の問題を解決する最善の方法がある限り

これは、Tim Peters によって書かれた Python の格言 (Python の禅と呼ばれます) で次のように表現されています: それを行うための明白な方法は 1 つあるべきであり、できれば 1 つだけである必要があります。これは、Perl 言語 (別の関数型言語) とまったく同じです。 ) TMTOWTDI (There's More Than One Way To Do It) の中心的な考え方は、まったく逆です。Python の設計哲学は「エレガント」、「明確」、「シンプル」です。したがって、「同じことを行うには常に複数の方法がある」という Perl の哲学は、Python 開発者にとって耐えられないことがよくあります。Python 開発者の哲学は、「1 つのことを 1 つの方法で、できれば 1 つの方法のみで実行する」です。Python 言語を設計する際、複数の選択肢に直面した場合、Python 開発者は通常、派手な構文を拒否し、曖昧さがほとんどまたはまったくない明確な構文を選択します。この設計概念の違いにより、一般に Python ソース コードは Perl よりも読みやすく、大規模なソフトウェア開発をサポートできると考えられています。これらのガイドラインは Python モットーと呼ばれます。完全なリストを取得するには、Python インタープリター内で import this を実行します。

より高度な仮想マシン

Python が実行されると、まず .py ファイル内のソース コードが Python バイト コードにコンパイルされ、次に Python 仮想マシン (Python 仮想マシン) がこれらのコンパイルされたバイト コードを実行します。このメカニズムの基本的な考え方は Java および .NET と一致しています。ただし、Python 仮想マシンと Java または .NET 仮想マシンの違いは、Python 仮想マシンがより高度な仮想マシンであることです。ここでいう高度とは、通常の意味での高度ではなく、Python の仮想マシンが Java や .NET よりも強力であるという意味ではなく、Java や .NET と比較して、Python の仮想マシンが実機からかけ離れていることを意味します。あるいは、Python の Virtual Machine はより抽象度の高い Virtual Machine であるとも言えます。C ベースの Python からコンパイルされたバイトコード ファイル (通常は .pyc 形式)。さらに、Python は対話モードでも実行できます。たとえば、主流のオペレーティング システムである Unix/Linux、Mac、Windows では、Python 対話環境をコマンド モードで直接実行できます。直接操作指示を出すことで対話型の操作が可能です。

Pythonに関する技術留保

ここでは、誰でも学べる無料のコースをいくつか紹介したいと思います。以下はコースのスクリーンショットです。下部にある QR コードをスキャンしてすべてを取得してください。

1. Pythonの全方位学習ルート

ここに画像の説明を挿入します

2. 学習ソフト

労働者が仕事をうまくやりたいなら、まず道具を研ぐ必要があります。Python を学習するために一般的に使用される開発ソフトウェアがここにあり、誰もが時間を大幅に節約できます。
ここに画像の説明を挿入します

3. 学習教材

ここに画像の説明を挿入します

4. 実用的な情報

実践こそが真実をテストするための唯一の基準です。ここの圧縮パッケージは、空き時間に個人の能力を向上させるのに役立ちます。
ここに画像の説明を挿入します

5. ビデオコース

ここに画像の説明を挿入します

さて、今日の共有はここで終わります。幸せな時間はいつも短いです。もっとコースを学びたい友達、心配しないでください、もっと驚きがあります~ここに画像の説明を挿入します

おすすめ

転載: blog.csdn.net/Everly_/article/details/133317617