Python の基礎を、コードリーディング中心で学習するためのリポジトリ。
Part 1 では、基本構文 / 条件分岐 / 繰り返し / 基本コレクション / 代入・参照・コピー / 関数 / Pythonらしい書き方 を扱う。
各 Unit ごとにソースコードとドキュメントを用意し、コード、コメント、出力、確認用の assert を対応づけながら見返せる形で整理している。
このリポジトリは、Python基礎学習の前半として作成した python-foundations-study-part1 である。
今回の Python 学習では、次の2つのリポジトリに分けて進める。
python-foundations-study-part1- 前半の学習範囲を扱う
- 標準寄りの
venv + pip構成で環境構築を行う
python-foundations-study-part2- 後半の学習範囲を扱う
uv + .venv構成で環境構築を行う
Part 1 では、Python の言語基礎と、コードリーディングで頻出する書き方に慣れることを目的とする。
外部ライブラリは扱わず、Python の言語仕様、組み込み型、組み込み関数、標準的な構文を中心に学習する。
このリポジトリでは、主に次の内容を目的として学習を行う。
- Python の基本構文を読めるようにする
- 変数、値、文字列、真偽値、
Noneの基本を理解する if / elif / else、for、while、break、continueを読めるようにする- truthy / falsy や
is/==の違いを理解する list、tuple、dict、setの基本操作と違いを理解する- 代入、参照、再束縛、浅いコピー、深いコピーの違いを理解する
- 関数定義、戻り値、引数、スコープ、docstring の基本を理解する
- 内包表記、
enumerate、zip、sorted、any、allなどの Python らしい書き方に慣れる - ソースコード、コメント、出力結果、
assertを対応させながら処理を追えるようにする
このリポジトリで扱う Unit は次の通り。
| Unit | 内容 |
|---|---|
| 01 | Pythonの基本構文・値・文字列 |
| 02 | 条件分岐・繰り返し・比較 |
| 03 | 基本コレクション |
| 04 | 代入・参照・コピー |
| 05 | 関数・引数・スコープ |
| 06 | Pythonらしい書き方 |
-
Unit 01: Pythonの基本構文・値・文字列
変数、数値、文字列、真偽値、None、型変換、f文字列、標準出力など、Python を読む入口となる基本を確認する -
Unit 02: 条件分岐・繰り返し・比較
if / elif / else、for、while、range、比較演算子、論理演算子、truthy / falsy、isと==の違いを確認する -
Unit 03: 基本コレクション
list、tuple、dict、setの作成、参照、更新、検索、ソート、反復、membership 判定、ミュータブル / イミュータブルを確認する -
Unit 04: 代入・参照・コピー
Python における代入の意味、参照の共有、再束縛、浅いコピー、深いコピー、copy.copy、copy.deepcopyを確認する -
Unit 05: 関数・引数・スコープ
def、戻り値、複数戻り値、位置引数、キーワード引数、デフォルト引数、*args、**kwargs、スコープ、docstring を確認する -
Unit 06: Pythonらしい書き方
リスト / 辞書 / 集合内包表記、ジェネレータ式、enumerate、zip、sorted、reversed、any、all、パック / アンパック、ラムダ式を確認する
基本的な進め方は次の通り。
docs/の対象 Unit の Markdown を読むsrc/<unit>/main.pyを実行するmain.pyから呼び出される各テーマ別ファイルを読む- ソースコード内のコメントと出力結果を対応させながら処理を追う
- 各ファイル末尾の
assertで、期待値との対応を確認する - 必要に応じて値を書き換え、再実行して挙動を確認する
このリポジトリでは、ソースコード単体でも学習できるようにコメントを多めに記載している。
ドキュメントは、各 Unit の学習対象、読む順番、処理の流れ、注目ポイント、引っかかりやすい点を確認するための補助資料として使う。
- Python 3.13.13
- VS Code
- Python 拡張機能
- Pylance
- Ruff
- venv
- pip
このリポジトリでは、Python 標準の venv と pip を使って仮想環境を作成する。
学習コード自体は外部ライブラリを使わず、標準機能・標準ライブラリの範囲で動作する。
requirements-dev.txt は、Ruff などの開発用ツールをインストールするために使用する。
py -3.13 -m venv .venvPowerShell の場合:
.venv\Scripts\Activate.ps1Git Bash の場合:
source .venv/Scripts/activatepython -m pip install --upgrade pippython -m pip install -r requirements-dev.txtpython --version想定するバージョンは次の通り。
Python 3.13.13
python src/01_basic_syntax_values_and_strings/main.pypython src/02_control_flow_and_comparisons/main.pypython src/03_core_collections/main.pypython src/04_assignment_references_and_copying/main.pypython src/05_functions_arguments_and_scope/main.pypython src/06_pythonic_constructs/main.pypython -m ruff check .
python -m ruff format --check .必要に応じてフォーマットを実行する。
python -m ruff format .主要な構成は次の通り。
.
├─ docs/
│ ├─ 01-basic-syntax-values-and-strings.md
│ ├─ 02-control-flow-and-comparisons.md
│ ├─ 03-core-collections.md
│ ├─ 04-assignment-references-and-copying.md
│ ├─ 05-functions-arguments-and-scope.md
│ └─ 06-pythonic-constructs.md
│
├─ src/
│ ├─ 01_basic_syntax_values_and_strings/
│ ├─ 02_control_flow_and_comparisons/
│ ├─ 03_core_collections/
│ ├─ 04_assignment_references_and_copying/
│ ├─ 05_functions_arguments_and_scope/
│ └─ 06_pythonic_constructs/
│
├─ .vscode/
│ ├─ extensions.json
│ └─ settings.json
│
├─ requirements-dev.txt
├─ pyproject.toml
└─ README.md
-
docs/
各 Unit の学習対象、ファイル構成、実行方法、読む順番、処理の流れ、注目ポイント、引っかかりやすい点、確認観点をまとめた Markdown ドキュメントを置く -
src/
Unit ごとの Python ソースコードを置く
各 Unit はディレクトリ単位で分け、main.pyを実行入口とする -
.vscode/
VS Code の推奨拡張機能とワークスペース設定を置く -
requirements-dev.txt
開発用ツールをpipでインストールするためのファイル -
pyproject.toml
Ruff などのツール設定を管理するファイル
- Pythonの基本構文・値・文字列:
docs/01-basic-syntax-values-and-strings.md - 条件分岐・繰り返し・比較:
docs/02-control-flow-and-comparisons.md - 基本コレクション:
docs/03-core-collections.md - 代入・参照・コピー:
docs/04-assignment-references-and-copying.md - 関数・引数・スコープ:
docs/05-functions-arguments-and-scope.md - Pythonらしい書き方:
docs/06-pythonic-constructs.md
このリポジトリでは、次の内容を確認できる。
- Python の基本的な構文を読める
- 変数、値、文字列、真偽値、
Noneの基本を説明できる if / elif / else、for、whileの基本を読める- truthy / falsy や
is/==の違いを説明できる list、tuple、dict、setの違いを説明できる- インデックス、スライス、membership 判定の基本を説明できる
- 代入、参照、再束縛、浅いコピー、深いコピーの違いを説明できる
- 関数の定義、戻り値、引数、スコープの基本を説明できる
- ミュータブルなデフォルト引数の注意点を説明できる
- 内包表記やジェネレータ式の基本を読める
enumerate、zip、sorted、reversed、any、allの用途を説明できる- パック / アンパック、複数代入、ラムダ式の基本を読める
- ソースコード、コメント、出力、
assertを対応させながら挙動を確認できる