ステージ: ステージ 1 · コアの基礎 |前提条件: なし |技術ベースライン: Python 3.15.0
学習目標
- Pythonとは何か、なぜ「Python」と呼ばれるのか、その開発の歴史を理解する
- Python の主な応用分野と特徴をマスターし、「何ができて何ができないのか」を知る
- The Zen of Python の核となる考え方を理解する
- Python 3.15.0 の新機能とバージョン進化の傾向を理解する
- 本コース全体の学習ルート「基礎基礎→応用→応用→AI→定量化」を確立
1. Python とは何ですか?
パイソンは、インタープリタ型、オブジェクト指向、動的型付けの汎用プログラミング言語1989 年のクリスマス時期にオランダ人プログラマーのグイド ヴァン ロッサムによってデザインが開始され、最初の公開バージョンは 1991 年にリリースされました。
「パイソン」という名前はヘビからではなく、グイドが好きなイギリスのコメディ「モンティ・パイソンのフライング・サーカス」から来ている。そのため、Pythonの公式ロゴは二匹の蛇として描かれることが多いですが、名前の本来の意味は「ドラマと楽しい」です。これは、Python コミュニティ文化が活発で活発な理由の 1 つでもあります。公式ドキュメントでは、変数名の例として「スパム」と「卵」が多用されており、これはこのコメディへのオマージュです。
1.1. Python とコンパイル言語の違い
| 特性 | パイソン | C/Java (コンパイル済み) |
|---|---|---|
| 実行方法 | 解釈と実行(ソースコード→バイトコード→解釈と実行) | マシンコード/バイトコードにコンパイルして実行 |
| 開発スピード | 高速で、迅速な反復に適しています | 比較的遅い |
| 走行速度 | 比較的遅い (C 拡張機能を使用すると高速化可能) | 素早い |
| 変数の型 | 動的タイプ (実行時に決定) | 静的型 (コンパイル時に決定) |
| アプリケーションシナリオ | AI、データ分析、Web、自動化、クローラー、定量化 | システム ソフトウェア、ハイ パフォーマンス コンピューティング、Android/組み込み |
Python はよく「」と呼ばれます。接着剤言語“: C/C++ と他のシステム (データベース、オペレーティング システム コマンド、Web サービス) で書かれた高性能モジュールを結合して、最小限のコードで最大限のオーケストレーション作業を完了するのが得意です。
2. Pythonの開発の歴史
- 1991年: Guido が Python 0.9.0 をリリースしました。これには、クラス、関数、例外、リストなどのコア概念がすでに含まれています。
- 1994年: Python 1.0 がリリースされ、ラムダ、マップ、フィルターが導入されました。
- 2000年: Python 2.0 がリリースされ、リスト生成とガベージ コレクションが導入されました。
- 2008年: Python 3.0 がリリースされました、これは初めてです下位互換性がありませんメジャーバージョンアップ(print機能化、文字列をUnicodeに統一、
xrangeに合併されましたrange待って)。それ以来、Python 2 と 3 は長い間並行して実行されてきました。 - 2020年1月: Python 2 は正式にメンテナンスを停止 (EOL) し、「Python 2 は廃止された」と公式に発表されました。
- 2021年: Python 3.10 リリース、導入
matchステートメント (構造化パターン マッチング)。 - 2023年: Python 3.12 リリース、削除
distutilsパフォーマンスがさらに向上します。 - 2024年: Python 3.13 リリース、導入フリースレッド実験的なサポート、JIT コンパイラーのプロトタイプ。
- 2025年: Python 3.14 がリリースされました。
- 2026年: Python 3.15.0 がリリースされ、1 年に 1 バージョンのリズムが継続され、パフォーマンスの最適化と標準ライブラリの最新化が続けられています (このコースのすべての例は Python 3.15.0 に基づいています)。
Xiaojia 氏は次のように思い出します。インターネット上の古いチュートリアル (特に 2010 年頃に公開されたもの) の多くが今でも教えられています。
xrange、raw_input、print "hello"こんな感じのPython2の書き方です。 Python 3.15 ではこれらもう存在しませんこのコースのそのようなコンテンツには「(Python 2 レガシー、削除)」と明記されています。このコースの書き方を参照してください。
3. Pythonの応用分野
3.1.主な応用分野
- ウェブ開発:Django、Flask、FastAPIなどのフレームワーク、Zhihu、Doubanなどは初期にはPythonで構築されていました。
- ウェブクローラー:リクエスト、BeautifulSoup、Scrapy、公開データの一括収集。
- データ分析: NumPy、Pandas、Matplotlib、処理テーブル、財務データ、実験データ。
- 人工知能/機械学習: scikit-learn、TensorFlow、PyTorch、AI 分野における事実上の第一言語。
- 自動化された運用とメンテナンス: バッチ管理サーバー、Ansible、DevOps ツール チェーン。
- 定量的取引: 財務データ処理、戦略バックテスト、自動取引 (このコースの最終段階)。
- 自動テスト:セレン、pytest。
- 科学計算: NumPy、SciPy、SymPy、MATLAB に対してベンチマーク。
- ゲームとグラフィックス:Pygame、PIL/枕画像処理。
3.2. Pythonを使用している企業
| 会社名・製品名 | Pythonで何をするか |
|---|---|
| グーグル | 検索エンジンのインフラストラクチャ、クローラー、内部ツール |
| 豆板 | 初期の頃、Web サイトのバックエンド全体は Python に基づいていました |
| 志湖 | 初期のコア ビジネス ロジック |
| ドロップボックス | デスクトップクライアントのコアロジック |
| インスタグラム | バックエンドサービス (Django) |
| 国内インターネット企業 | Python はデータ分析、アルゴリズム、自動化プラットフォームでよく使用されます |
4. Pythonの特徴
4.1.言語レベル
- シンプルかつエレガント: インデントを使用します (代わりに
{}) コードのブロックを整理し、読みやすさを強化します。公式哲学は「エレガント、クリア、シンプル」です。 - 説明と実行:書いた後に実行できるので、ラピッドプロトタイピングに適しています。
- ダイナミックタイプ: 変数は型を宣言する必要はありません。
x = 1後x = "hi"合法でもあります。 - 厳密に型指定された:
"1" + 1エラーは直接報告され、(JavaScript とは異なり) 秘密裏に変換されることはありません。 - オブジェクト指向: クラス、継承、ポリモーフィズム、マジック メソッドを含むすべてがオブジェクトです。
- クロスプラットフォーム: 同じコードを Windows/macOS/Linux 上で実行できます。
- 豊富な標準ライブラリ: 公式の「バッテリー」は、ファイル、ネットワーク、電子メール、圧縮、同時実行、テスト、およびその他のシナリオをカバーします (このコースの 22 日目専用)。
4.2.生態レベル
- サードパーティ ライブラリの数は世界第 1 位で、PyPI (Python Package Index) には 500,000 を超えるパッケージがあります。
- 1 つのコマンドでインストールします。
pip install 包名。 - コミュニティは活発で、AI/データ分野ではほぼすべてが最初に Python バージョンを持っています。
5. Python の禅
対話型環境で次の 2 行を入力すると、Tim Peters 著の「The Zen of Python」(PEP 20) が表示されます。
import this
最初の数行を出力します(英語のオリジナルテキスト)。
Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Readability counts.
There should be one-- and preferably only one --obvious way to do it.
Now is better than never.
Xiaojia は、Python を書くための指針となるイデオロギーとして、これをいくつかの現地語の文章に翻訳しました。
- 美しさは醜さよりも優れており、明快さは曖昧さよりも優れています: コードは最初に人間によって読み取られ、次にマシンによって実行されます。
- 複雑よりもシンプルの方が良い: 単純な解決策を使用できる場合は、複雑な解決策を積み上げないでください。
- 読みやすさは重要です: インデント、名前、コメントが一目で理解できる必要があります。
- 明確な方法が 1 つだけある方が良い: Python スタイルは一貫性を重視します。
- やらないよりは今すぐやったほうがいい: 最初に実行してから最適化します。
6. Python 3.15.0の新機能のリスト
Python 3.15.0 は、3.13 からの進化の方向性を継続しています。このコースでは、これを技術的なベンチマークとして使用します。次の機能は数日以内に開発される予定です。
- パフォーマンスの継続的な最適化: インタプリタコアと標準ライブラリの計算速度は、各バージョンで年々向上し続けています。
- フリースレッドの進化: 3.13 以降の「GIL フリー」実験ビルドは引き続き改良されています。マルチスレッド並列処理は、Python の将来の重要な方向性です (26 日目で GIL の問題について詳しく説明します)。
- 強化されたタイプヒント機能:
str | None(PEP 604) およびその他の最新の記述方法は 3.15 で完全に成熟しており、typingモジュールはより詳細な型のアノテーションを行うことができます (Day18 では関数のアノテーションについて説明します)。 - 標準ライブラリの最新化:
pathlib、zoneinfo、tomllib最新のモジュールが優先されるまで待ちます。などの古いモジュールdistutils) は 3.12 以降削除され、パッケージ化されて統合されます。setuptools/pyproject.toml(21日目の講義)。 - 構文は安定したまま:
matchステートメント (3.10 以降)、セイウチ演算子 (3.8 以降)、f-string (3.6 以降)、およびその他の最新の構文が完全にサポートされています。
特定のバージョンを確認するための最も信頼できる情報は、公式ドキュメントです (「新機能」列には、各バージョンの新機能が年ごとに記録されています)。
7. 学習方法:本講座の学習ルート
「Xiaojia で Python プログラミングを学ぶ」は合計 55 日間で、7 つのステージに分かれており、段階的に進みます。
| ステージ | 日 | コンテンツ |
|---|---|---|
| ステージ 1 コア基盤 | Day01 ~ Day24 | 環境構築、仮想環境入門、構文、文字列、プロセス制御、シーケンス、関数、オブジェクト指向、モジュール、標準ライブラリ、例外、ファイル |
| ステージ 2 上級 | Day25 ~ Day32 | 規則性、マルチスレッド/マルチプロセス/コルーチン、ソケットネットワーク、MySQL/SQLite/NoSQL、メール、デザインパターン |
| ステージ 3 の一般的なアプリケーション | 33日目~40日目 | NumPy、Pandas、Matplotlib、データ分析の実践、Flask、Django、FastAPI、運用と保守の自動化 |
| ステージ 4 クローラー | Day41 ~ Day44 | リクエスト/BeautifulSoup、Scrapy、ダウンロードツールの練習、アンチクローリングとデータ収集 |
| ステージ 5 機械学習 | Day45 ~ Day48 | sklearn の基礎、分類回帰、クラスタリングの次元削減、包括的なケース |
| ステージ 6 の深層学習 | 49日目~52日目 | ニューラル ネットワークの基礎、TensorFlow/Keras、PyTorch、ビジョン、NLP |
| ステージ 7 定量的取引 | Day53 ~ Day56 | 財務データの分析、可視化と時系列、銘柄選択戦略、バックテストのリスク管理、包括的なプロジェクト |
| ステージ 8 の拡張トピック | 57日目~79日目 | データベース監視、yolo ターゲット認識、Python テストの基本、Web 自動テストの実践、仮想環境と pip 依存関係の管理、GUI 開発、Tui 開発およびその他のテクノロジー |
研究の提案 (Xiaojia の経験):
- 毎日やってください: 見て入力するだけでは学習できません。各コード例を自分で実行してください。
- 最初にそれを実行してから、さらに深く掘り下げてください。: 初日 (Day02) に環境をインストールすると、後続のすべてのコードを実行できるようになります。
- 演習をしなければなりません: 各章の終わりにある演習が定着の鍵となります。それができない場合は、戻って対応するセクションを読んでください。
- ヘルプを上手に活用しよう: 関数に遭遇したとき、私はその機能を理解していません。
help(函数名)Web ページをめくるより速い (Day04 の講義)。
練習問題
- 自分の言葉で言ってみましょう: Python 3 と Python 2 の最も重要な違いは何ですか? (ヒント: 印刷、エンコード、range/xrange)
- コマンドラインを開いて次のように入力します
pythonインタラクティブモードに入り、import this出力「Zen of Python」の中で最も同意するものをコピーし、その理由を教えてください。 - 対話モードで計算する
1 + 2 * 3そして"Python" * 3結果を観察して、文字列の乗算が何を意味するかを推測してください。 - 考えてみてください: Python で何をしたいですか? (Web、クローラー、データ分析、AI、定量化…) 55 日間のコース終了時に合格の目標として書き留めます。
- オンラインにアクセスし、Python 公式 Web サイト (www.python.org) のトップページに現在表示されている最新バージョン番号を確認します。このコースで使用する 3.15.0 と比較し、バージョンの進化傾向について話します。
まとめ
- Python は、「グルー言語」として知られる、解釈され動的に型付けされるオブジェクト指向の汎用言語であり、迅速な開発やデータ/AI シナリオに適しています。
- 名前はコメディ「モンティ・パイソンのフライング・サーカス」に由来しており、ヘビとは何の関係もありません。
- Python 2 は 2020 年にメンテナンスを終了しました。このコースのすべてのコンテンツは Python 3.15.0 に基づいており、Python 2 の記述方法はマークされ、削除されます。
- 適用分野: Web、クローラ、データ分析、AI、自動運用保守、定量取引を完全にカバーします。
- 「Zen of Python」の核となる考え方: 可読性を第一に、複雑さよりもシンプルさを、不明瞭さよりも明瞭さを優先します。
- このコースには 55 日間と 7 つのステージがあり、基礎から定量取引まで、毎日実践的に進歩します。