+ 作るログイン
本

JS から来た人の Python ― どこから来て、なぜ動くのか

JavaScript がある程度書ける人が、Python を「仕組みから」わかって書き始められるようになる本です。文法を JS と並べて覚えたあと、import が実際にどのフォルダの何を探しているのか、ライブラリとフレームワークは何が違うのか、pip install で何がどこから来てどこに置かれるのか、仮想環境の中身、GitHub で共有するときに何を上げて相手はどう入れるのか、自分のパッケージを配る方法までを、実物のフォルダとファイルを見せながら1つずつ分解します。2026年9月時点(Python 3.13)の情報です。

  1. 第1章Python 00:はじめに ― import はどこから来るのかJavaScript は書けるけれど Python は初めて、という人のための本の入口です。import transformers と書くとなぜライブラリが使えるのか、ライブラリはどこに保存されているのか、そもそもライブラリやフレームワークとは何か、GitHub で共有したら相手はどうするのか。この本で解く疑問を並べ、それぞれ何章で解決するかの地図と、JS の道具との対応表、題材の天気コマンド tenki の育ち方を示します。17コマ
  2. 第2章Python 01:Python はどこで動くのかpython3 main.py と打ったとき、パソコンの中では何が起きているのか。「Python」の正体はディスク上の実行ファイル(インタプリタ)で、node と同じ立場にあることを、which コマンドで実物を見つけて確かめます。シェルが python3 を探し、python3 が .py を読み、バイトコードに翻訳し、仮想マシンが実行する4段の流れ、__pycache__ の正体、REPL、ブラウザで Python が動かない理由まで分解します。19コマ
  3. 第3章Python 02:入れ方とバージョン同じ python3 と打っても、動く Python は人によって違います。python.org・Homebrew・uv のそれぞれで入れたとき本体がどこに置かれるのか、1台に何個もの Python が同居できる理由、そして PATH という「探す順番」がどれを呼ぶかを決めている仕組みを、実際の出力で確かめます。python と python3 の違い、pip ではなく python3 -m pip と書く理由、Mac に最初からある Python に触ってはいけない理由まで扱います。20コマ
  4. 第4章Python 03:基本の文法 ― JS と並べて、違う理由までJavaScript が書ける人のための、Python の基本の文法です。波かっこの代わりの字下げ、let も const も無い変数、int・float・str・bool・None の型、勝手に型を変えない理由、f-string、=== が無い代わりの == と is、空の list が偽になる真偽の判定、and・or・not と三項演算子、コメントと print までを、同じプログラムを JS と並べて1つずつ比べます。20コマ
  5. 第5章Python 04:データの入れ物 ― list・tuple・dict・set と「名前は札」JS の配列とオブジェクトは Python では何になるのか。list・tuple・dict・set の4つの入れ物を JS と並べ、後ろから数えるインデックス、切れ目で考えるスライス、内包表記を見たうえで、「変数は箱ではなく、オブジェクトに付ける札」という見方を図で動かして確かめます。b = a の後に b を変えると a も変わる理由、文字列では変わらない理由(変更できる/できない)、浅いコピーと深いコピー、dict のキーに list が使えない理由までを1つずつ分解します。26コマ
  6. 第6章Python 05:関数 ― 引数は札、既定値の罠、スコープの探し方JS の function と Python の def は何が同じで何が違うのか。呼び出したときに関数の中に名前の置き場ができ、引数を渡すことも「札を付けるだけ」だという様子を図で追います。デフォルト引数・キーワード引数・*args・**kwargs を JS の残余引数や分割代入と並べ、既定値に [] を書くと呼ぶたびに増える罠の正体、lambda、L・E・G・B の順に名前を探すスコープ、global と nonlocal、if や for がスコープを作らないこと、関数もオブジェクトであることまでを説明します。26コマ
  7. 第7章Python 06:繰り返し・分岐・例外Python の for は1種類だけ。その裏で iter() と next() が「取り出し係」を動かし、StopIteration で終わる流れを図で追います。range・enumerate・zip・items、while と for の else、switch に似て非なる match、そして例外が呼び出しを遡って except に受け止められる様子、try/except/else/finally の4つの枠、JS の try/catch との違い、後片付けを保証する with の仕組み(__enter__ と __exit__)までを、天気コマンド tenki の例で説明します。22コマ
  8. 第8章Python 07:クラスとオブジェクトWeather("東京", 21.5) と書いたとき、空の物が作られ、__init__ が self に属性を書き込み、w という名前が付くまでを図で追います。self の正体(w.show() は Weather.show(w) の略)、JS の this との違い(取り出しても外れない bound method)、属性を物 → クラス → 親の順に探す仕組みと継承・super()、Python が決まった場面で呼ぶ特殊メソッド、dataclass、そして「すべてはオブジェクト」の意味までを、tenki の天気データをクラスにしながら説明します。19コマ
  9. 第9章Python 08:import の正体 ― 名前だけで、なぜどこから入るのかimport tenki・import json・import requests の3行が、パソコンの中のどのフォルダで見つかるのかを1段ずつ追いかけます。sys.modules(読み込み済みの棚)を見て、無ければ sys.path の名簿を上から探し、見つけたファイルを上から実行してモジュールを作り、名前を付ける。print(sys.path) と __file__ の実物、1回しか実行されない理由、from と as、if __name__ == "__main__"、Node の require や ESM との違い、自分のファイル名が本物を隠す事故まで扱います。30コマ
  10. 第10章Python 09:パッケージとフォルダ構成 ― フォルダを import すると何が起きるかファイルが増えた tenki を tenki/ フォルダにまとめ、パッケージにします。import tenki.display の1行で、フォルダの木のどのファイルがどの順に実行されるのかを実際の出力で1段ずつ追い、__init__.py の役目、点とフォルダの対応、相対 import とそのエラー、python -m と __main__.py、標準ライブラリの json と pip で入れた requests の実物のフォルダ、__init__.py の無いフォルダ、別のフォルダから起動したときの ModuleNotFoundError、src レイアウトまでを扱います。22コマ
  11. 第11章Python 10:ライブラリとフレームワークimport requests の requests の正体を、site-packages の中のフォルダを実際に開いて確かめます。ライブラリはただの .py ファイルの束で、__init__.py が入口になり、requests.get は api.py に書かれた普通の関数から urllib3 へとつながっています。フレームワークは中身は同じでも「あなたの関数を呼ぶ」向きの骨組みです(制御の反転)。12行のフレームワークを自作して仕組みを見せ、Flask・Express・React と対比します。20コマ
  12. 第12章Python 11:pip と PyPI:ライブラリはどこから来るのかpip install requests の1行の裏で起きている6つの段階(PyPI に一覧を問い合わせる・版を選ぶ・依存を調べる・wheel をダウンロードしてハッシュを確かめる・site-packages に展開する・dist-info に記録する)を、パソコンとインターネットの舞台の上で小包を動かして1段ずつ見せます。wheel が zip であることを実際に開いて確かめ、そのあとの import requests が sys.path から見つかるまでをつなぎます。npm との違い、配布名と import 名の違い、transformers のコードと重みが別の場所から別のタイミングで届くことも説明します。21コマ
  13. 第13章Python 12:仮想環境 ― プロジェクトごとの箱と、activate の正体pip install したライブラリが Python 全体で1つの場所に入ると、なぜ困るのか。venv(仮想環境)を実際に作って中身のファイルを並べ、bin/python が本体への別名であること、pyvenv.cfg が目印になって sys.path の site-packages だけが差し替わること、activate は PATH の先頭に .venv/bin を足すだけであることを、本物の出力で確かめます。node_modules との違いと、.venv を git に入れない理由も説明します。19コマ
  14. 第14章Python 13:依存を記録して共有する ― GitHub にあげて他の人が使うとき自分のパソコンで動く tenki を GitHub に上げて、他の人が使うにはどうするのか。.venv は上げず、コードと「必要なものの一覧」だけを上げ、相手が自分の手元で venv を作り直して PyPI から入れる、という流れを3つの舞台で見せます。requirements.txt と pip freeze、pyproject.toml の dependencies と版の書き方、ロックファイル uv.lock の中身、そして uv の init・add・sync・run を実際に動かして、何のファイルができるかを確かめます。21コマ
  15. 第15章Python 14:自分のパッケージを作って配るtenki を実際にパッケージにして、uv build で wheel と sdist を作り、wheel(中身はただの zip)を開けて dist-info の METADATA や entry_points.txt を確かめます。pip install で site-packages に何が置かれ、pip install -e . では「実物はあっち」と書いた1行の .pth だけが置かれて sys.path が伸びる仕組みを、本物の出力で見ます。GitHub から直接入れる方法、名前の決め方、TestPyPI、Trusted Publishing による PyPI への公開までを、第11章の pip install の逆向きとしてたどります。26コマ
  16. 第16章Python 15:型ヒントと道具型ヒントは実行時に何もしないことを、int と書いた関数に文字列を渡して実際に確かめます。型ヒントは __annotations__ に残るだけで、検査するのは mypy や pyright という別の道具です。None の扱い、型ヒントの無い関数、ruff の check と format、pytest がテストを見つける決まりと assert の読み解き方を、TypeScript・ESLint・Prettier・Jest と並べて見ます。最後に、pytest・mypy・エディタが「どの python の上で動いているか」で結果が変わる理由と、確かめ方をまとめます。23コマ
  17. 第17章Python 16:非同期:JS との一番大きな違いJS のコードはいつもイベントループの中で動きますが、Python は既定では1行ずつ順番に動き、ループは asyncio.run(…) の間だけ存在します。async def を呼んでも中身が動かない理由(コルーチン)、await で手放したタスクをループがどう切り替えるかを5段の図で追い、asyncio.gather と Promise.all、time.sleep や requests がループを止める落とし穴、httpx での書き方、どこで await できるか、スレッド・プロセスとの使い分けと GIL、FastAPI ではループをフレームワークが回すことまでを、tenki で3都市の天気を並べて取りながら説明します。21コマ
  18. 第18章Python 17:フレームワークで Web API を作るtenki を FastAPI の Web API にします。@app.get のデコレーターが「関数を登録簿に書き込む関数」であることを10行の自作の登録簿で確かめてから、リクエストが uvicorn → FastAPI → あなたの関数と呼ばれていく流れ、ASGI という約束、型ヒントを使った検査、Express・Flask・Django との違いを、実際に動かした出力とともに見ていきます。22コマ
  19. 第19章Python 18:おわりに ― 全体の地図と困ったときコード・モジュール・パッケージ・site-packages・venv・pyproject.toml・PyPI と GitHub を1枚の地図にまとめ直します。そのうえで Traceback の読み方と、ModuleNotFoundError を「どの python が動いているか」「その python の sys.path に入っているか」の2つの問いで切り分ける地図、困ったときに打つコマンド、次に学ぶことを紹介します。23コマ
この本のテーマ

同じテーマの本・マガジン

この本と同じテーマの章を収めたもの

アニメモ公式のほかの本・マガジン

もっと見る