1-2 Google Colab

Google ColabでPythonを動かしてみる

PUBLISHED 2026.06.21 ブラウザ上でPythonを実行できるGoogle Colabを使い、AIが作ったコードを貼るだけで複利計算シミュレータを動かす体験記事。

前回は、Claudeのアーティファクトでブラウザ上に電卓を作りました。

今回は場所が変わります。Google Colab というブラウザ上でPythonを動かせる開発環境を使います。インストール作業は不要で、Googleアカウントがあれば今すぐ試せます。

「Python」と聞くと身構えるかもしれませんが、自分でコードを書くわけではありません。AIに作ってもらったコードを貼って動かす——その流れを体験します。

今回作るのは複利計算シミュレータです。元本・金利・年数を入力すると、資産がどう増えていくかをグラフで確認できます。

この記事でやることはシンプルです。

  1. Google Colabを開く
  2. AIに複利計算のコードを作ってもらってColabで動かす
  3. パラメータを変えて遊んでみる
TIPS

なぜPythonを使うの?

この記事からはPythonというプログラミング言語を使います。第1部ではこれ以降もPythonを使い続けます。自分で色々試した感じでは、AIにコードを書いてもらう用途だとPythonが一番噛み合う印象でした。他の言語が使えないわけではありませんが、まずはPythonで進めます。

Google Colabを開く

Google Colab を開いてください。Googleアカウントでログインすると、ノートブック作成画面が表示されます。「新しいノートブック」をクリックすると、コードを入力できるセルが表示されます。このセルに、これからAIが作ったコードを貼り付けます。

Google Colabの新しいノートブック画面

「コーディングを開始するか、AI で生成します。」と表示されているセルに、コードを貼り付けます。

まず作ってもらおう

Claude.ai を開いて、こう打ってみてください。

pythonで複利計算シミュレータのコードを書いて 

コードが返ってきましたか?それをそのままコピーして、Colabのセルに貼り付けてください。

ClaudeがColabで動く複利計算シミュレータのコードを生成した例

右側にコードが表示されます。「コピー」ボタンでまとめてコピーできます。

貼り付けたら、セルの左にある ▶ ボタンを押して実行します。

Colabでコードを実行している様子

セル左の ▶ ボタンを押して実行します。

グラフが表示されましたか?
自分が試したときは「元本100万円が30年後にどうなるか」が描かれていました。数字の羅列で見るよりずっと実感がわきます。「複利ってこういうことか」と体感できれば、この記事の半分は終わりです。

複利計算のシミュレーション結果グラフ

累計投資額(点線)と資産(実線)の差が評価益です。20年後に1.79倍になっています。

ちなみに、自分が最初にやったときは軸ラベルやタイトルが「□□□」のように文字化けしていました。日本語フォントが入っていないのが原因です。気になる人はこの記事の下の方に対処法を載せていますが、ここでは一旦そのまま進めて大丈夫です。

参照:ソースコード(基本版)
# =============================================================
# 複利計算シミュレータ(Google Colab対応)
# 月次複利・月次積立に対応。各セルにコピペして実行できます。
# =============================================================

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

try:
    import japanize_matplotlib  # noqa: F401
except ImportError:
    print("※ 日本語表示が必要なら `!pip install japanize-matplotlib` を実行してください")


principal   = 1_000_000   # 初期元本(円)
monthly     = 50_000      # 毎月の積立額(円)
annual_rate = 0.05        # 年利(0.05 = 5%)
years       = 20          # 運用年数
freq        = 12          # 年あたりの複利・積立回数(12=月次, 1=年次)


def simulate(principal, monthly, annual_rate, years, freq=12):
    rate_per_period = annual_rate / freq
    n = years * freq
    balance = principal
    invested = principal
    rows = []
    for i in range(1, n + 1):
        balance *= (1 + rate_per_period)
        balance += monthly
        invested += monthly
        rows.append({
            "period": i, "year": i / freq,
            "balance": balance, "invested": invested,
            "gain": balance - invested,
        })
    return pd.DataFrame(rows)


df = simulate(principal, monthly, annual_rate, years, freq)

yearly = df[df["period"] % freq == 0].copy()
yearly["year"] = yearly["year"].astype(int)
summary = yearly[["year", "invested", "balance", "gain"]].reset_index(drop=True)
summary["gain_ratio"] = summary["gain"] / summary["invested"]

pd.options.display.float_format = lambda x: f"{x:,.0f}"
print("=== 年次サマリー ===")
print(summary.to_string(index=False))

final = df.iloc[-1]
print(f"\n運用年数: {years}年 / 累計投資額: {final['invested']:,.0f}円 / 最終資産: {final['balance']:,.0f}円 / 対投資額: {final['balance']/final['invested']:.2f}倍")

fig, ax = plt.subplots(figsize=(10, 6))
ax.plot(df["year"], df["balance"], label="資産(複利)", linewidth=2)
ax.plot(df["year"], df["invested"], label="累計投資額(元本)", linestyle="--", linewidth=2)
ax.fill_between(df["year"], df["invested"], df["balance"], alpha=0.2, label="評価益")
ax.set_xlabel("経過年数")
ax.set_ylabel("金額(円)")
ax.set_title(f"複利シミュレーション(年利{annual_rate*100:.1f}% / 月{monthly:,.0f}円積立)")
ax.legend()
ax.grid(True, alpha=0.3)
ax.yaxis.set_major_formatter(plt.FuncFormatter(lambda v, _: f"{v/1e6:.0f}M"))
plt.tight_layout()
plt.show()
TIPS

複利とは?
複利とは、増えた分も次の元手に加わり、少しずつ増え方が大きくなる考え方です。

プログラミング学習でも、前に覚えた知識が次の練習を助けてくれます。小さな「わかった」が積み重なることで、少しずつ作れるものが増えていきます。

パラメータを変えてみよう

グラフが固定の数字で動いているのを見ていると、自分でパラメータを触りたくなりませんか。
次は数字を変えられるように、これもClaudeへ頼んでみましょう。

パラメータは画面で変更できるようにして

新しいコードが返ってきたら、Colabに新しいセルを作って貼り付けて実行してください。セルの下に入力欄が出てきます。

スライダーと入力欄でパラメータを変更できるインタラクティブ版

スライダーを動かすたびにグラフが即座に更新されます。

好きな数字を入れてみましょう。例えば、

  • 元本:手元の貯金額でも
  • 年利:1〜7%くらいで試すと面白い
  • 年数:10年、20年、30年

数字を変えるたびにグラフの形が変わります。複利のように頭で考えるとピンとこないことも、こうして触ってみると一気に腑に落ちます。
「入力を変えるだけでいろいろ試せる」——この感覚がつかめれば十分です。

TIPS

グラフの日本語が文字化けしたら

グラフのタイトルや軸ラベルが正しく表示されないことがあります。Colabのデフォルト環境に日本語フォントが入っていないためです。セルの先頭に以下を追加して実行してください。

!pip install japanize-matplotlib
import japanize_matplotlib

その他のエラーも対応は同じです。 赤い文字が出たらそのままコピーして、Claudeに貼り付けてみてください。
ほとんどの場合、修正したコードを返してくれます。

参照:ソースコード(パラメータ可変版)
# =============================================================
# 複利計算シミュレータ(Google Colab / インタラクティブ版)
# スライダー・入力欄でパラメータを変更すると即座に再計算されます。
# このコード全体を1つのセルに貼り付けて実行してください。
# =============================================================

import pandas as pd
import matplotlib.pyplot as plt
import ipywidgets as widgets
from IPython.display import display

try:
    import japanize_matplotlib  # noqa: F401
except ImportError:
    import subprocess, sys
    subprocess.run([sys.executable, "-m", "pip", "install", "-q",
                    "japanize-matplotlib"], check=True)
    import japanize_matplotlib  # noqa: F401


def simulate(principal, monthly, annual_rate, years, freq=12):
    rate_per_period = annual_rate / freq
    n = years * freq
    balance = principal
    invested = principal
    rows = []
    for i in range(1, n + 1):
        balance *= (1 + rate_per_period)
        balance += monthly
        invested += monthly
        rows.append({
            "period": i, "year": i / freq,
            "balance": balance, "invested": invested,
            "gain": balance - invested,
        })
    return pd.DataFrame(rows)


style = {"description_width": "120px"}
layout = widgets.Layout(width="420px")

w_principal = widgets.IntText(value=1_000_000, description="初期元本(円)", style=style, layout=layout)
w_monthly   = widgets.IntText(value=50_000, description="毎月積立(円)", style=style, layout=layout)
w_rate      = widgets.FloatSlider(value=5.0, min=0.0, max=15.0, step=0.1,
                                  description="年利(%)", readout_format=".1f",
                                  style=style, layout=layout)
w_years     = widgets.IntSlider(value=20, min=1, max=50, step=1,
                                description="運用年数", style=style, layout=layout)
w_freq      = widgets.Dropdown(options=[("月次", 12), ("年次", 1)], value=12,
                               description="複利・積立頻度", style=style, layout=layout)

out = widgets.Output()


def update(_=None):
    with out:
        out.clear_output(wait=True)
        df = simulate(w_principal.value, w_monthly.value,
                      w_rate.value / 100, w_years.value, w_freq.value)
        final = df.iloc[-1]

        print("=== 最終結果 ===")
        print(f"累計投資額   : {final['invested']:,.0f} 円")
        print(f"最終資産     : {final['balance']:,.0f} 円")
        print(f"評価益       : {final['gain']:,.0f} 円")
        print(f"対投資額倍率 : {final['balance'] / final['invested']:.2f} 倍")

        fig, ax = plt.subplots(figsize=(10, 5.5))
        ax.plot(df["year"], df["balance"], label="資産(複利)", linewidth=2)
        ax.plot(df["year"], df["invested"], label="累計投資額(元本)",
                linestyle="--", linewidth=2)
        ax.fill_between(df["year"], df["invested"], df["balance"], alpha=0.2, label="評価益")
        ax.set_xlabel("経過年数")
        ax.set_ylabel("金額(円)")
        ax.set_title(f"複利シミュレーション(年利{w_rate.value:.1f}% / 月{w_monthly.value:,.0f}円積立)")
        ax.legend()
        ax.grid(True, alpha=0.3)
        ax.yaxis.set_major_formatter(plt.FuncFormatter(lambda v, _: f"{v/1e6:.0f}M"))
        plt.tight_layout()
        plt.show()


for w in (w_principal, w_monthly, w_rate, w_years, w_freq):
    w.observe(update, names="value")

controls = widgets.VBox([w_principal, w_monthly, w_rate, w_years, w_freq])
display(controls, out)
update()

今回わかったこと

今回は、コードを一行も書かずに複利計算シミュレータを作りました。

やったことはシンプルです。

  • AIにコードを頼む
  • Colabに貼って実行する
  • 動かしてみて、また頼む

Colabは実行するたびに結果がすぐ返ってくるので、「変えたらどうなる?」を試しやすい環境です。エラーが出てもAIに貼れば直してくれる——このループさえつかめれば、あとは同じやり方でどんどん応用できます。

コードを書く技術より先に、AIと往復する感覚がつかめれば十分です。難しいことを覚えなくても、「頼んで、貼って、動かす」だけで形になる——その感覚が残れば、この記事の役目は果たせています。

次の記事では、外部のデータ(CSV)をColabに読み込んで、集計してグラフにします。
「自分で作った数字」から「手元にある業務データ」を扱う一歩です。