Développement Python avec Claude Code
Découvrez développement Python avec Claude Code. Conseils pratiques et exemples de code inclus.
Python開発でClaude Codeを使いこなす
Claude CodeはTypeScriptだけでなくPython開発でも威力を発揮します。FastAPIでのWeb開発、データ処理スクリプト、テスト作成まで幅広く対応できます。
FastAPIアプリケーションの構築
> FastAPIでユーザー管理APIを作成して。
> - Pydanticでバリデーション
> - SQLAlchemy + asyncpg でDB接続
> - CRUDエンドポイント
> - JWT認証
from fastapi import FastAPI, HTTPException, Depends
from pydantic import BaseModel, EmailStr
from sqlalchemy.ext.asyncio import AsyncSession
from datetime import datetime
app = FastAPI(title="User Management API")
class UserCreate(BaseModel):
email: EmailStr
name: str
password: str
class Config:
json_schema_extra = {
"example": {
"email": "[email protected]",
"name": "田中太郎",
"password": "securepassword123",
}
}
class UserResponse(BaseModel):
id: str
email: str
name: str
is_active: bool
created_at: datetime
class Config:
from_attributes = True
@app.post("/users", response_model=UserResponse, status_code=201)
async def create_user(
user_data: UserCreate,
db: AsyncSession = Depends(get_db),
):
existing = await get_user_by_email(db, user_data.email)
if existing:
raise HTTPException(status_code=409, detail="Email address is already registered")
hashed = hash_password(user_data.password)
user = await create_user_in_db(db, user_data, hashed)
return user
@app.get("/users/{user_id}", response_model=UserResponse)
async def get_user(
user_id: str,
db: AsyncSession = Depends(get_db),
):
user = await get_user_by_id(db, user_id)
if not user:
raise HTTPException(status_code=404, detail="User not found")
return user
データ処理スクリプトの生成
pandasやpolarsを使ったデータ処理もClaude Codeで高速に書けます。
> CSVファイルを読み込んで以下の処理を行うスクリプトを作成して。
> - 欠損値の補完(数値は中央値、文字列は"不明")
> - 日付カラムのパース
> - 売上の月次集計
> - 結果をExcelで出力
import polars as pl
from pathlib import Path
def process_sales_data(input_path: str, output_path: str) -> None:
df = pl.read_csv(input_path)
# 欠損値の補完
numeric_cols = [c for c in df.columns if df[c].dtype in [pl.Float64, pl.Int64]]
string_cols = [c for c in df.columns if df[c].dtype == pl.Utf8]
for col in numeric_cols:
median_val = df[col].median()
df = df.with_columns(pl.col(col).fill_null(median_val))
for col in string_cols:
df = df.with_columns(pl.col(col).fill_null("不明"))
# 日付パースと月次集計
df = df.with_columns(
pl.col("date").str.to_date("%Y-%m-%d").alias("date_parsed")
)
monthly = (
df.group_by(pl.col("date_parsed").dt.truncate("1mo"))
.agg([
pl.col("amount").sum().alias("total_sales"),
pl.col("amount").mean().alias("avg_sales"),
pl.col("amount").count().alias("transaction_count"),
])
.sort("date_parsed")
)
monthly.write_excel(output_path)
print(f"処理完了: {len(monthly)}か月分のデータを出力")
if __name__ == "__main__":
process_sales_data("sales.csv", "monthly_report.xlsx")
pytestでのテスト生成
> process_sales_data 関数のテストをpytestで作成して。
> フィクスチャで一時CSVを作成するパターンで。
import pytest
import polars as pl
from pathlib import Path
from process_sales import process_sales_data
@pytest.fixture
def sample_csv(tmp_path: Path) -> Path:
csv_path = tmp_path / "test_sales.csv"
csv_path.write_text(
"date,product,amount\n"
"2026-01-15,商品A,1000\n"
"2026-01-20,商品B,2000\n"
"2026-02-10,商品A,1500\n"
"2026-02-15,,\n"
)
return csv_path
def test_process_creates_output(sample_csv: Path, tmp_path: Path):
output = tmp_path / "output.xlsx"
process_sales_data(str(sample_csv), str(output))
assert output.exists()
def test_monthly_aggregation(sample_csv: Path, tmp_path: Path):
output = tmp_path / "output.xlsx"
process_sales_data(str(sample_csv), str(output))
result = pl.read_excel(output)
assert len(result) == 2 # 1月と2月
def test_null_handling(sample_csv: Path, tmp_path: Path):
output = tmp_path / "output.xlsx"
process_sales_data(str(sample_csv), str(output))
result = pl.read_excel(output)
# 欠損値が補完されて集計に含まれている
assert result["transaction_count"].sum() == 4
テスト全体の設計についてはテスト戦略完全ガイドを参照してください。
型ヒントの追加
既存のPythonコードに型ヒントを追加させることもできます。
> src/ 以下のPythonファイルに型ヒントを追加して。
> mypyで --strict チェックが通るようにして。
CLAUDE.mdでPythonルールを設定
## Python開発ルール
- Python 3.12以上を対象
- 型ヒントを必ず付与
- フォーマッターはruff format、リンターはruff check
- テストはpytest、カバレッジ80%以上
API開発のパターンはAPI開発を高速化する方法を、CLAUDE.mdの書き方はCLAUDE.mdの書き方完全ガイドも参考にしてください。
Summary
Claude CodeはPython開発でも高い生産性を発揮します。FastAPIアプリ、データ処理、テスト作成まで、明確に仕様を伝えれば高品質なコードが生成されます。
Pythonの詳細はPython公式ドキュメント、Claude CodeについてはAnthropic公式ドキュメントを参照してください。
Related Posts
Comment booster vos projets personnels avec Claude Code [Avec exemples]
Apprenez à accélérer considérablement vos projets de développement personnels avec Claude Code. Inclut des exemples concrets et un workflow pratique de l'idée au déploiement.
Comment automatiser le refactoring avec Claude Code
Apprenez à automatiser efficacement le refactoring de code avec Claude Code. Inclut des prompts pratiques et des patterns de refactoring concrets pour des projets réels.
Guide complet de configuration CORS avec Claude Code
Découvrez le guide complet de configuration CORS avec Claude Code. Conseils pratiques et exemples de code inclus.