初心者のためのPython基礎 | SkillhubAI(スキルハブエーアイ)

初心者のためのPython基礎

本章では、StreamlitでAIアプリを作るために必要な最低限のPython知識を、実際に手を動かしながら学習します。プログラミング初心者の方でも、このレッスンを通してAIアプリ開発の準備ができるようになります。

学習スタイル: 各セクションで「説明 → やってみよう → 確認」の流れで進めます。

🛠️ 環境準備

Step 1: Pythonのインストール

Macの場合

Homebrew方式(推奨)

# Homebrewがない場合はインストール
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

# Pythonのインストール
brew install python@3.13

公式サイト方式 1. Python.orgにアクセス 2. Download Python 3.13.xをクリック 3. ダウンロードしたpkgファイルを実行

Windowsの場合

Microsoft Store方式(推奨) 1. Microsoft Storeを開く 2. Python 3.13で検索してインストール

公式サイト方式 1. Python.orgにアクセス 2. Download Python 3.13.xをクリック 3. 重要: Add Python to PATHにチェック☑️ 4. Install Nowをクリック

🎯 やってみよう: インストール確認

ターミナル(Mac)またはコマンドプロンプト(Windows)を開いて、以下を実行してください:

python --version

期待される結果: Python 3.13.x のように表示されればOK!

Step 2: 仮想環境の作成

仮想環境は、プロジェクトごとにライブラリを分離するための重要な機能です。

🎯 やってみよう: 仮想環境の作成と有効化

# 1. 仮想環境を作成
python -m venv my_python_lesson

# 2. 仮想環境を有効化
## Mac/Linux の場合
source my_python_lesson/bin/activate

## Windows の場合
my_python_lesson\Scripts\activate

成功すると: プロンプトの先頭に (my_python_lesson) が表示されます。

(my_python_lesson) $ 

📝 Python基礎レッスン

レッスン1: 変数と文字列

概念説明

変数は「データを入れる箱」のようなものです。文字列は文字の集まりで、AIアプリではユーザーの入力やAPI応答などで頻繁に使います。

🎯 やってみよう: 変数と文字列の基本

新しいファイル lesson1.py を作成して、以下のコードを書いて実行してください:

# lesson1.py
# 変数の作成
name = "太郎"
age = 25
temperature = 0.3

# 文字列の連結
message1 = "こんにちは、" + name + "さん!"
print(message1)

# f-string(2025年推奨方式)
message2 = f"あなたは{age}歳で、temperatureは{temperature}ですね。"
print(message2)

# 練習: 自分の情報で試してみよう
your_name = "ここに自分の名前"
your_age = 20  # 自分の年齢
print(f"私は{your_name}で、{your_age}歳です。")

実行方法:

python lesson1.py

確認問題: 自分の名前と好きなAIモデル名(例: GPT-5)を使って、自己紹介メッセージを作ってみてください。


レッスン2: リスト(複数データの管理)

概念説明

リストは複数のデータを順番に格納できます。AIアプリでは、会話履歴やモデル選択肢などでよく使います。

🎯 やってみよう: リストの操作

lesson2.py を作成してください:

# lesson2.py
# リストの作成
ai_models = ["gpt-5", "gpt-4o", "claude-3.5-sonnet"]
temperatures = [0.0, 0.3, 0.7, 1.0]

# 要素の取得
print("最初のモデル:", ai_models[0])
print("最後のモデル:", ai_models[-1])

# 要素の追加
ai_models.append("gemini-2.0")
print("追加後:", ai_models)

# リストの長さ
print("モデル数:", len(ai_models))

# すべての要素を表示
print("利用可能なモデル:")
for i, model in enumerate(ai_models):
    print(f"{i+1}. {model}")

# 練習: 自分の好きなモデルリストを作ってみよう
my_favorite_models = []  # 空のリストから始める
# ここに3つのモデルを追加してみてください

実行して確認:

python lesson2.py

練習課題: my_favorite_modelsリストに3つのAIモデルを追加して、番号付きで表示してください。


レッスン3: 辞書(キーと値のペア)

概念説明

辞書は「キー」と「値」のペアでデータを管理します。AIアプリでは設定情報や価格情報などで活用します。

🎯 やってみよう: 辞書の操作

lesson3.py を作成してください:

# lesson3.py
# 辞書の作成(API価格情報の例)
model_pricing = {
    "gpt-5": 1.25,
    "gpt-5-mini": 0.125,
    "gpt-4o": 2.5,
    "claude-sonnet": 3.0
}

# 値の取得
print("GPT-5の価格:", model_pricing["gpt-5"], "$/1M tokens")

# 新しいキーと値の追加
model_pricing["gemini-2.0"] = 1.0
print("追加後の辞書:", model_pricing)

# キーの存在確認
if "gpt-5" in model_pricing:
    print("GPT-5の価格情報があります")

# すべてのキーと値を表示
print("\n価格表:")
for model, price in model_pricing.items():
    print(f"{model}: ${price}/1M tokens")

# 練習: AI設定の辞書を作ってみよう
ai_settings = {
    # ここに "temperature", "max_tokens", "model" などのキーと値を追加
}

実行して確認:

python lesson3.py

練習課題: ai_settings辞書に以下の情報を追加してください: - "temperature": 0.3 - "max_tokens": 1000 - "model": "gpt-5-mini"


レッスン4: if文(条件分岐)

概念説明

if文は条件に応じて処理を分ける仕組みです。AIアプリでは、ユーザーの選択やエラーハンドリングで頻繁に使用します。

🎯 やってみよう: 条件分岐

lesson4.py を作成してください:

# lesson4.py
# 基本的なif文
temperature = 0.8

if temperature < 0.3:
    setting_type = "保守的"
elif temperature < 0.7:
    setting_type = "バランス"
else:
    setting_type = "創造的"

print(f"Temperature {temperature}{setting_type}な設定です")

# 文字列の条件分岐
model_name = "gpt-5"

if model_name.startswith("gpt-5"):
    max_context = 272000
    print(f"{model_name}は最新モデルです")
elif model_name.startswith("gpt-4"):
    max_context = 128000
    print(f"{model_name}は安定したモデルです")
else:
    max_context = 4000
    print(f"{model_name}は従来のモデルです")

print(f"最大コンテキスト: {max_context} tokens")

# 練習: コスト判定機能を作ってみよう
cost = 0.05  # ドル

# ここにif文を書いて、コストに応じたメッセージを表示してください
# 0.01未満: "低コスト"
# 0.01以上0.1未満: "標準コスト" 
# 0.1以上: "高コスト"

実行して確認:

python lesson4.py

練習課題: コスト判定のif文を完成させてください。


レッスン5: for文(繰り返し処理)

概念説明

for文は同じ処理を繰り返し実行します。AIアプリでは、メッセージ履歴の表示やデータの一括処理で使用します。

🎯 やってみよう: 繰り返し処理

lesson5.py を作成してください:

# lesson5.py
# リストの繰り返し処理
models = ["gpt-5", "gpt-5-mini", "gpt-4o", "claude-sonnet"]

print("利用可能なモデル:")
for model in models:
    print(f"- {model}")

# 番号付きの表示
print("\nモデル選択:")
for i, model in enumerate(models, 1):
    print(f"{i}. {model}")

# 辞書の繰り返し処理
pricing = {
    "gpt-5": 1.25,
    "gpt-4o": 2.5,
    "claude-sonnet": 3.0
}

print("\n価格情報:")
for model, price in pricing.items():
    print(f"{model}: ${price}/1M tokens")

# 条件付きの繰り返し
print("\n低コストモデル:")
for model, price in pricing.items():
    if price < 2.0:
        print(f"✅ {model}: ${price}")

# 練習: チャット履歴の例
chat_messages = [
    "こんにちは",
    "AIについて教えて",
    "ありがとうございました"
]

# ここでfor文を使って、番号付きでメッセージを表示してください

実行して確認:

python lesson5.py

練習課題: chat_messagesを使って、以下の形式で表示してください:

メッセージ履歴:
1. こんにちは
2. AIについて教えて
3. ありがとうございました


レッスン6: 関数(処理のまとめ)

概念説明

関数は処理をまとめて名前をつけたものです。同じ処理を何度も使ったり、コードを整理するのに役立ちます。

🎯 やってみよう: 関数の作成と使用

lesson6.py を作成してください:

# lesson6.py
# 基本的な関数
def greet_user(name):
    return f"こんにちは、{name}さん!"

# 関数の使用
message = greet_user("田中")
print(message)

# 複数の引数を持つ関数
def calculate_api_cost(tokens, model_price):
    cost = tokens * model_price / 1_000_000
    return cost

# 使用例
cost = calculate_api_cost(10000, 1.25)
print(f"API使用料: ${cost:.4f}")

# デフォルト引数付きの関数
def create_ai_settings(model="gpt-5-mini", temperature=0.3, max_tokens=1000):
    settings = {
        "model": model,
        "temperature": temperature,
        "max_tokens": max_tokens
    }
    return settings

# 様々な呼び出し方
settings1 = create_ai_settings()  # すべてデフォルト
settings2 = create_ai_settings("gpt-5", 0.7)  # 一部変更
settings3 = create_ai_settings(temperature=0.0)  # 特定の引数のみ変更

print("設定1:", settings1)
print("設定2:", settings2)
print("設定3:", settings3)

# 練習: モデル推奨機能を作ってみよう
def recommend_model(use_case):
    # ここに関数の中身を書いてください
    # use_case が "coding" なら "gpt-5"
    # use_case が "chat" なら "gpt-5-mini"  
    # use_case が "creative" なら "gpt-4o"
    # それ以外なら "gpt-5-mini"
    pass

# テスト
print(recommend_model("coding"))    # gpt-5 が表示されるはず
print(recommend_model("chat"))      # gpt-5-mini が表示されるはず

実行して確認:

python lesson6.py

練習課題: recommend_model関数を完成させてください。


レッスン7: エラーハンドリング

概念説明

プログラムでエラーが発生しても、アプリが止まらないようにする仕組みです。AIアプリでは、API呼び出し失敗時などに重要です。

🎯 やってみよう: エラーハンドリング

lesson7.py を作成してください:

# lesson7.py
# 基本的なtry-except
def safe_divide(a, b):
    try:
        result = a / b
        return result
    except ZeroDivisionError:
        print("エラー: 0で割ることはできません")
        return 0
    except Exception as e:
        print(f"予期しないエラー: {e}")
        return 0

# テスト
print("10 ÷ 2 =", safe_divide(10, 2))    # 正常: 5.0
print("10 ÷ 0 =", safe_divide(10, 0))    # エラー: 0で割れない
print("10 ÷ 'a' =", safe_divide(10, 'a'))  # エラー: 文字で割れない

# 辞書のキーアクセスでのエラーハンドリング
model_pricing = {
    "gpt-5": 1.25,
    "gpt-4o": 2.5
}

def get_model_price(model_name):
    try:
        price = model_pricing[model_name]
        return f"{model_name}: ${price}/1M tokens"
    except KeyError:
        return f"エラー: {model_name}の価格情報がありません"

# テスト
print(get_model_price("gpt-5"))        # 正常
print(get_model_price("unknown-model")) # エラー

# 練習: 安全な設定読み込み関数を作ってみよう
def get_safe_setting(settings, key, default_value):
    # try-exceptを使って、設定の読み込みを安全に行う関数を作ってください
    # settings辞書からkeyを取得し、存在しない場合はdefault_valueを返す
    pass

# テスト用
test_settings = {"temperature": 0.3, "model": "gpt-5"}
print(get_safe_setting(test_settings, "temperature", 0.0))  # 0.3
print(get_safe_setting(test_settings, "max_tokens", 1000))  # 1000 (デフォルト)

実行して確認:

python lesson7.py

練習課題: get_safe_setting関数を完成させてください。


🎯 総合練習問題

これまで学んだことを組み合わせて、AIアプリの基本的なコンポーネントを作ってみましょう。

final_practice.py を作成してください:

# final_practice.py
# 総合練習: シンプルなAI設定管理システム

# 1. モデル価格情報(辞書)
model_pricing = {
    "gpt-5": {"input": 1.25, "output": 10.0},
    "gpt-5-mini": {"input": 0.125, "output": 1.25},
    "gpt-4o": {"input": 2.5, "output": 10.0}
}

# 2. 設定管理関数
def create_ai_config(model, temperature, max_tokens):
    """AI設定を作成する関数"""
    # ここに実装してください

def validate_temperature(temp):
    """temperatureが0.0-1.0の範囲かチェックする関数"""
    # ここに実装してください

def calculate_estimated_cost(model, input_tokens, output_tokens):
    """推定コストを計算する関数"""
    # ここに実装してください

# 3. メイン処理
def main():
    print("🤖 AI設定管理システム")
    print("=" * 30)

    # 利用可能なモデルを表示
    print("利用可能なモデル:")
    # ここにfor文でモデル一覧を表示

    # 設定例を作成
    config1 = create_ai_config("gpt-5-mini", 0.3, 1000)
    config2 = create_ai_config("gpt-5", 0.0, 2000)

    # 設定を表示
    configs = [config1, config2]
    for i, config in enumerate(configs, 1):
        print(f"\n設定{i}: {config}")

    # コスト計算例
    cost = calculate_estimated_cost("gpt-5-mini", 1000, 500)
    print(f"\n推定コスト: ${cost:.4f}")

if __name__ == "__main__":
    main()

課題内容: 1. create_ai_config: 辞書形式で設定を返す 2. validate_temperature: 範囲チェック(True/False) 3. calculate_estimated_cost: 価格情報を使ってコスト計算 4. メイン処理の for文を完成させる

実行して確認:

python final_practice.py

🎉 レッスン完了!

お疲れさまでした!これで以下のPythonスキルを習得しました:

変数と文字列: データの保存と操作
リスト: 複数データの管理
辞書: キーと値のペア管理
if文: 条件分岐
for文: 繰り返し処理
関数: 処理のまとめと再利用
エラーハンドリング: 安全なプログラム作成

これらのスキルがあれば、次の章でStreamlitを使ったAIチャットアプリ開発に進む準備が整いました!

次のステップ: StreamlitとGPT-5を使ったAIアプリ開発に挑戦しましょう!🚀


🗑️ 環境をクリーンアップ(オプション):

# 仮想環境を無効化
deactivate

# 練習ファイルを整理
mkdir python_practice
mv lesson*.py python_practice/
mv final_practice.py python_practice/