本章では、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/