概要
導入
Python はクロスプラットフォームのコンピューター プログラミング言語であり、ABC 言語の代替であり、オブジェクト指向の動的型言語です。元々は自動化スクリプト (シェル) を記述するために設計されましたが、バージョンが継続的に更新され、新しい言語機能が追加されるにつれて、独立した大規模プロジェクトの開発に使用されることが増えています。
Python は、関数型プログラミング、命令型プログラミング、構造化プログラミング、オブジェクト指向プログラミング、リフレクティブ プログラミングなど、いくつかのプログラミング パラダイムをサポートしています。Python インタープリターは簡単に拡張でき、C または C++ (または C から呼び出せる他の言語) を使用して新しい関数やデータ型で拡張できます。Python は、カスタマイズ可能なソフトウェアの拡張プログラミング言語としても使用されます。Python には動的型システムとガベージ コレクションがあり、メモリ使用量を自動的に管理できます。また、Python 自体には、主要なシステム プラットフォームごとにソースまたはマシン コードを提供する巨大で広範な標準ライブラリがあります。
Python は、解釈性、コンパイル、対話性、およびオブジェクト指向を組み合わせた高レベルのスクリプト言語です。
- Python はインタープリタ言語です。これは、開発プロセスにコンパイル部分がないことを意味します。PHP や Perl 言語に似ています。
- Python は対話型言語です。これは、開発者が Python プロンプト >>> の後に直接コードを実行できることを意味します。
- Python はオブジェクト指向言語です。これは、Python がコードをオブジェクトにカプセル化するオブジェクト指向スタイルまたはプログラミング手法をサポートしていることを意味します。
- **Python は初心者向けの言語です: **Python は、単純なワードプロセッサから WWW ブラウザ、ゲームに至るまで、幅広いアプリケーション開発をサポートする、初心者プログラマーにとって最適な言語です。
Pythonのメリットとデメリット
Python の利点:
-
高いソフトウェア品質
Python は、簡潔で明確な構文と、一貫性の高いプログラミング モデルを支持しています。一貫した設計スタイルにより、かなり標準化されたコードの開発が保証されます。
エラーに対して、Python は「安全かつ合理的な」終了メカニズムを提供します。Python は例外処理をサポートしています。これにより、プログラムの実行中に発生するエラーを効果的にキャプチャして処理し、これらのエラーを監視して処理できます。
-
速い開発
Python は開発速度の最適化に取り組んでいます。簡潔な構文、動的な型、コンパイルの必要なし、豊富なライブラリ サポートなどの機能により、プログラマーはプロジェクト開発を迅速に実行できます。Python では、数百行の C コードを必要とする関数を開発するのに、数十行のコードしか必要としないことがよくあります。
-
強力な
Python は十分強力であり、他のシステムへのインターフェイスが多数あるため、Python でシステム全体のプロトタイプを作成することが完全に可能です。
より具体的なタスクを完了するために、Python には、正規表現からネットワーク プログラミング、データベース プログラミングに至るまで、事前にコーディングされたライブラリ ツールが多数組み込まれています。Web やデータ分析などの分野において、Python にはサービスの迅速な開発に役立つ強力なフレームワークもあります。例: Django、TruboGears、Pylons など。
-
拡張しやすい
Python は簡単に拡張でき、(CPython の場合) C または C++ で書かれたモジュールを介して機能的に拡張できるため、他のシステムやコンポーネントの動作をスクリプト化するための柔軟な接着言語になります。
-
クロスプラットフォーム
Python はクロスプラットフォームです。Python はさまざまなオペレーティング システム (Linux、Windows、MacOS、Unix など) で見つかります。Python は C で書かれており、C の移植性により、Python は ANSI C コンパイラがあればどのプラットフォームでも実行できます。さまざまなプラットフォーム向けに開発された特定のモジュールがいくつかありますが、どのプラットフォームでも Python で開発された汎用ソフトウェアは、わずかに変更したり、そのまま他のプラットフォームで実行したりできます。この移植性は、異なるアーキテクチャと異なるオペレーティング システムの両方に適用されます。
Pythonの欠点
-
Python は C/C++ プログラムに比べて実行速度が非常に遅い
Python はインタープリタ型言語であるため、コードは実行時に CPU が理解できるマシン コードに 1 行ずつ変換されますが、この変換プロセスには非常に時間がかかるため、非常に遅くなります。C プログラムは、実行前に CPU が実行できるマシンコードに直接コンパイルされるため、非常に高速です。しかし、第 28 法則によれば、ほとんどのプログラムは高速性を必要としません。高い実行速度が必要な状況では、Python 設計者は JIT テクノロジを使用するか、プログラムのこの部分を C/C++ 言語で書き直す傾向があります。
そして開発時間は貴重なリソースであり、CPU 時間よりも貴重です。特に最新のコンピューターの高い処理能力を考慮すると、Python 開発速度の利点が実行速度の損失を上回ることがよくあります。一部の改良点は実装が難しすぎる場合や、コードの移植性や保守性に影響を与える場合があります。すべてのパフォーマンス向上が努力に値するわけではありません。
-
コードは暗号化できません
Python プログラムを配布している場合、実際にはソース コードを配布していることになります。この点が C 言語とは異なり、C 言語ではソース コードを公開する必要はなく、コンパイルされたマシン コードのみを公開する必要があります。マシンコードから C コードを完全に推定することは不可能です。
Pythonの開発方向と応用シナリオ
-
ウェブ開発
Python は、ソケット プログラミング、マルチスレッド プログラミングをサポートする豊富なモジュールを提供し、ネットワーク サービス プログラムを簡単かつ迅速に開発できます。最新のXMLテクノロジー、json言語、データベースプログラミング、PythonのORMフレームワークをサポートしており、データベースの操作が非常に便利です。
Python には、Django、Tornado、Flask などの優れた Web 開発フレームワークもあり、多数のオープンソース プラグインによってサポートされており、さまざまな Web 開発のニーズを満たすのに十分です。
-
自動化された運用とメンテナンス
Python にはオペレーティング システム サービスへのインターフェイスが組み込まれているため、オペレーティング システムを保守するためのポータブルな管理ツールやウィジェットを作成するのに最適です。Python プログラムは、ファイルやディレクトリ ツリーを検索したり、他のプログラムを実行したり、並列処理にプロセスやスレッドを使用したりできます。
-
ウェブ クローラー
テキスト処理に関しては、Python が提供する re モジュールは正規表現をサポートしており、SGML および XML 解析モジュールも提供しており、多くのプログラマーは Python を使用して XML プログラムを開発しています。
-
グラフィックス処理
PILやTkinterなどのグラフィックライブラリに対応しており、グラフィック処理に便利です。マルチメディア アプリケーションの場合、Python の PyOpenGL モジュールは、2 次元および 3 次元の画像処理を実行できる「OpenGL アプリケーション プログラミング インターフェイス」をカプセル化します。PyGame モジュールを使用してゲーム ソフトウェアを作成できます
-
さらに、Python はゲーム、人工知能、ビッグデータ分析、ロボット工学などの分野でも使用されており、人工知能に推奨されるプログラミング言語です。
Pythonの種類
-
スパイソン
実行プロセス:プログラム----(Cインタプリタ)----(バイトコード)----(マシンコード)----CPU
Python の公式バージョン。C で書かれた、最もよくメンテナンスされたオリジナルの Python 実装です。通常、新しい言語機能は最初にここに表示されます。
CPython 実装は、ソース ファイル (py ファイル) をバイトコード ファイル (pyc ファイル) に変換し、Python 仮想マシン上で実行します。
-
ジトン
実行プロセス: プログラム----(Java インタプリタ)----(バイトコード)----(マシンコード)----CPU
Python の Java 実装。Java アプリケーションのスクリプト言語として使用したり、Java クラス ライブラリを使用してアプリケーションを作成したりできます。Java ライブラリのテストの作成によく使用されます。Jython は、Python コードを Java バイトコードに動的にコンパイルし、JVM 上で実行します。
-
ピピ
実行プロセス: プログラム----(バイトコード)----(マシンコード)----CPU
完全に Python で書かれた Python 実装。スタックレス サポートやジャスト イン タイム コンパイラなど、他の実装にはないいくつかの高度な機能をサポートしています。PyPy は、Python ソース コードをバイトコードに変換し、それをマシン コードにコンパイルします。
-
その他のカテゴリ: Python for .NET、IronPython、RubyPython、Brython…
Pythonのバージョン(Python 2、Python 3)
Python には、Python 2.X と Python 3 の 2 つのバージョンがあります。
-
Python 2.x の最後のバージョンは Python 2.7 (2010 年リリース) で、2020 年まで正式にサポートされます。
-
Python 3.X の最初のバージョン Python 3.0 (2008 年リリース)
Python 3.X は Python 2.X と互換性がなく、Python 3.0 への移行バージョンとして python2.6 が正式にリリースされており、2.6 以降のバージョンはすべて移行バージョンです。
なぜ Python 3.X バージョンを開発するのでしょうか? Python は 20 年以上開発されてきたため、重複する機能やモジュールが多く、コードの簡潔性が損なわれているものも多くなったため、Guido は X バージョンの徹底的なアップグレードを実行することにしました。
基本的な文法
基本的な文法要素
インデントとコメント
-
インデント
Java および C/C++ 言語では、コード ブロックを表すために「{ }」が使用されます。
Python はコード ブロックを表すためにインデント (スペース、できれば 4 つのスペース) を使用します。中括弧 {} を使用する必要はありません。また、同じインデント量を持つ複数の連続したステートメントがコード ブロックを構成します。
インデントされたスペースの数は可変ですが、同じコード ブロック内のステートメントには同じ数のインデントされたスペースが含まれている必要があります。
例: if、for、while、def、class などのステートメントはすべてコード ブロックを使用します。通常、次の例に示すように、ステートメントの最後のコロンはコード ブロックの始まりを表します。
if x>0: y=1 else: y=-1 # 注意:同一个代码块中的语句,其缩进量应相同,否则会出现 indentationError (缩进错误)异常。
-
注記
プログラマがコードを読んで理解できるように、プログラムに説明文を追加します。
- 単一行コメント: # コメントの内容
- 複数行のコメント: """ コメントの内容 """ または ''' コメントの内容'''
ステートメント継続文字 ( \ ) とステートメント区切り文字 ( ; )
-
ステートメント継続記号 ( \ )
通常、Python のステートメントは 1 行を占め、ステートメントの終了記号はありません。ステートメントが長い場合は、バックスラッシュ ( \ ) を使用して複数行のステートメントを実現できます。
注: 記号 ( \ ) の後には、スペースやコメントなどの他の記号を含めることはできません。
-
ステートメント区切り文字 ( ; )
ステートメント区切り文字で区切られた複数のステートメントは複合ステートメントと見なすことができ、Python ではコロンの後に個別のステートメントまたは複合ステートメントを記述することができます。
予約語とキーワード
-
予約語は、バージョン アップグレード後に使用するためにプログラミング言語で予約されている語です。
キーワードは、コマンドまたは定数であるプログラミング言語の単語です。
-
知らせ:
- 予約語とキーワードを変数またはその他の識別子として使用することはできません。
- Python では識別子の大文字と小文字が区別され、予約語とキーワードは厳密に大文字と小文字を区別する必要があります。
Python 3.7.2 の 35 の予約語の意味と機能
シリアルナンバー | 予約語 | 説明する |
---|---|---|
1 | そして | 論理 AND 演算。式の演算に使用されます。 |
2 | として | データ型の変換に使用されます |
3 | 主張する | 変数や条件式の結果を判定するために使用します。 |
4 | 非同期 | 非同期操作を有効にするために使用されます |
5 | 待つ | コルーチンが戻るのを待つために非同期操作で使用されます。 |
6 | 壊す | ループ文の実行を中断する |
7 | クラス | クラスを定義する |
8 | 続く | 次のループに進む |
9 | 確かに | 関数またはメソッドを定義する |
10 | の | 変数またはシーケンスの値を削除する |
11 | エリフ | 条件文。if および else と組み合わせて使用します。 |
12 | それ以外 | 条件ステートメントは、if、else と組み合わせて使用されます。例外またはループステートメントでも使用できます。 |
13 | を除外する | 例外をキャッチした後の処理コード ブロックが含まれており、try およびfinally と組み合わせて使用されます。 |
14 | 間違い | 「偽」を意味する論理値 |
15 | ついに | 例外をキャッチした後に常に呼び出されるコードのブロックが含まれており、try および else と組み合わせて使用されます。 |
16 | のために | ループ文 |
17 | から | モジュールのインポートに使用され、import と組み合わせて使用されます。 |
18 | グローバル | 関数または他のローカル スコープでグローバル変数を使用する場合 |
19 | もし | 条件文。elif および else と組み合わせて使用します。 |
20 | 輸入 | インポートモジュール。from と組み合わせて使用します。 |
21 | で | 変数がシーケンス内にあるかどうかを判断する |
22 | は | 変数がクラスのインスタンスであるかどうかを判断する |
23 | ラムダ | 無名関数を定義する |
24 | なし | 空のオブジェクトまたは特別な null 値を表します |
25 | 非ローカルな | 関数または他のスコープで外部 (非グローバル) 変数を使用するために使用されます。 |
26 | ない | 論理 NOT 演算。式の演算に使用されます。 |
27 | または | 論理和演算。式の演算に使用されます。 |
28 | 合格 | 空のクラス、メソッド、または関数のプレースホルダー |
29 | 上げる | 例外をスローするために使用されます |
30 | 戻る | 関数からの計算結果を返します |
31 | 真実 | 「真」を意味する論理値 |
32 | 試す | 異常の可能性があるテスト実行コード、excel、finallyと組み合わせて使用 |
33 | その間 | ループ文 |
34 | と | Python ステートメントを簡素化する |
35 | 収率 | 関数から順番に値を返す |