ITを整える
中級Python を整える。
= ブラウザでさわって学ぶ Python 練習場
プログラミングの骨格は「変数 → データ型 → 関数 → クラス」の 4 ステップ。ブラウザ内で Python が動くので、書いて → 実行 → 変数のメモリがどう変わるかを安全に何度でも試せます。
TLDR — 30秒で分かる
ブラウザ内 Python (Pyodide) で 変数 → データ型 → 関数 → クラス の 4 ステップを試せる Playground。実行後の変数インスペクタ・参照共有の可視化付き。
主な機能を見る
- 4 ステップ + 応用のサンプルコード(クラス・継承・内包表記・例外)
- 実行後の変数インスペクタ(型・値・参照 ID)
- 同じオブジェクトを複数変数が指す「参照共有」をハイライト
- CodeMirror 6 シンタックスハイライト
- Pyodide CDN ロード(初回 ~10MB・以降キャッシュ)
- Ctrl/⌘ + Enter で実行
サンプルコード(クリックでエディタに挿入)
OUTPUT
Python コードを書いて「実行」を押すと、ここに print 出力が出ます。
使い方
4 ステップで Python の骨格をつかむ。
- 1
変数 — 値に名前をつけて呼び出す
name = "太郎"のように=で「箱」に値を入れる。実行後、右の VARIABLES に変数が並びます。 - 2
データ型 — 複数の値をまとめる
リスト(順番付き)/辞書(キーと値のペア)/タプル(変更不可)。プログラムの 9 割はこの 3 つで足ります。
- 3
関数 — 処理に名前を付けて再利用
defで「入力 → 処理 → 出力」のひとまとまりを定義。同じ処理を何度も書かずに済む。 - 4
クラス — 「もの」を作る設計図
classで「ものの型」を定義し、データ(属性)と振る舞い(メソッド)を一緒にまとめる。オブジェクト指向の入口。
💡 初回は Pyodide(Python WASM)の読み込みに 5〜15 秒かかります。2 回目以降はキャッシュから瞬時にロード。データはサーバに送られず、すべてブラウザ内で実行されます。
よくある質問
- Q. 入力した Python コードはサーバーに送られますか?
- A. いいえ。Python インタプリタ自体(Pyodide)が WebAssembly でブラウザ内にロードされ、コードの実行・標準出力・変数の生成までがすべてあなたのブラウザの中で完結します。書いたコードもデータもサーバには一切送信されません。社内データや個人情報を含むスクリプトを試しても安全です。
- Q. Python の「骨格」って何ですか?
- A. プログラミング初学者がまず押さえるべき 4 つは **①変数(=で値に名前をつける)/②データ型(リスト・辞書・タプルで複数の値をまとめる)/③関数(def で処理に名前を付けて再利用)/④クラス(class でデータと振る舞いをまとめる)**。本 Playground のサンプルもこの 4 ステップ + 応用(継承・内包表記・例外処理)の順で並んでいます。これだけで「人のコードを読める」「自分でも書ける」レベルに届きます。
- Q. Python のコーディング規約(PEP 8)の要点は?
- A. Python 公式スタイルガイド「PEP 8」の最重要ポイント:①**インデントは半角スペース 4 つ**(タブは原則使わない)、②変数・関数は **snake_case**(`user_name`)、クラスは **PascalCase**(`UserAccount`)、定数は **UPPER_SNAKE**(`MAX_SIZE`)、③行は 79 文字以内(実務では 100〜120 まで許容されることも)、④関数の上は 2 行空ける、⑤`==` で None と比較せず `is None` を使う。本 Playground のサンプルもこの規約に従っています。
- Q. 「変数」と「オブジェクト」の違いは?
- A. Python では **変数は「名前のラベル」** で、実体(オブジェクト)はメモリ上にある、という関係。`a = [1, 2, 3]; b = a` と書くと、a と b は同じリストを指します(同じ id)。これが「参照共有」で、a を変更すると b も変わる原因。右の VARIABLES パネルで同じ id を持つ変数同士は「↔」で結ばれるので、目で見て確認できます。
- Q. Pyodide って何ですか?JavaScript の Python 版?
- A. Pyodide は CPython(公式 Python 処理系)を WebAssembly に移植したもので、本物の Python 3.12 をブラウザ内で動かせます。NumPy・Pandas・Matplotlib などの C 拡張ライブラリも動作可能。JavaScript で書き直した「Python っぽい言語」ではなく、ガチの CPython なので動作互換性が高いのが特徴です。初回ロードに ~10MB ですが、ブラウザがキャッシュするので 2 回目以降は瞬時。
- Q. 「変数インスペクタ」で何が分かりますか?
- A. 実行後、メモリに残っているユーザー定義変数の一覧が右に出ます。表示項目は **①変数名/②型(int / str / list / dict / クラス名)/③値の repr(先頭 240 文字)/④参照 ID** で、同じ ID を複数の変数が指している場合は「↔ 変数名」で繋がりが見えます。リストや辞書をコピーしたつもりが「同じものを 2 つの名前が指していた」ような失敗を視覚的に確認できます。
- Q. クラスと関数の使い分けは?
- A. 「状態(データ)と振る舞い(処理)を一緒に扱いたい」ならクラス、「処理だけを再利用したい」なら関数、が基本。例えば「ユーザーの名前・年齢・誕生日メソッド」をまとめて扱うならクラス、「2 つの数を足す」だけなら関数で十分。クラスを使うと「データを書き換えるメソッド」を `obj.method()` のようにオブジェクトに紐付けて呼べるので、コードの整理がしやすくなります。
- Q. 「リセット」したら自分が書いた変数や関数は消えますか?
- A. はい、すべて消えます(Pyodide 側でユーザー定義の名前を全部 del します)。インポートしたモジュールも未参照になります。逆に言えばエディタの内容はそのまま残るので、もう一度「実行」を押せば同じ状態を再生できます。Pyodide の起動状態は維持されるので、リセット直後の再実行は瞬時です。
- Q. 実行に時間がかかります(初回)
- A. Pyodide のロードに 5〜15 秒(回線速度依存・約 10MB)かかります。これは **初回だけ** で、ブラウザがキャッシュするため 2 回目以降のページ訪問では数 ms で起動します。実行ボタンを押した瞬間にロードが始まるので、初回はこの待ち時間を許容してください。
RELATED TOOLS
続けて整える