定期実行プログラムと生成 AI を使った応用・デバッグ

ai×python
本ページにはプロモーションが含まれています

「動かすだけ」から「使いこなす」へ

第2章までで、Python の基本的な書き方と生成 AI から受け取ったコードの読み方を学びました。この章ではいよいよ、実際の業務で使える一歩踏み込んだ活用法に挑戦します。

テーマは3つです。

  1. プログラムを決まった時間に自動で動かす「定期実行」
  2. 生成 AI を使ってコードを発展させる「応用」
  3. エラーが出たときに慌てない「デバッグ」の考え方

1. 定期実行プログラムとは?

毎日手動で動かすのをやめよう

「毎朝9時にレポートを集計して送る」「毎週月曜にデータをバックアップする」——こういった定期的な作業も、Python に任せることができます。これを**定期実行(スケジューリング)**と呼びます。

schedule ライブラリを使ってみよう

Python には schedule というライブラリがあり、シンプルな記述で定期実行を設定できます。

まず、以下のコマンドでライブラリをインストールします(初回のみ)。

pip install schedule

インストールが済んだら、こんなふうに使えます。

python

import schedule
import time

def daily_report():
    print("本日のレポートを作成しました!")

# 毎日 09:00 に実行する設定
schedule.every().day.at("09:00").do(daily_report)

# プログラムを動かし続けるループ
while True:
    schedule.run_pending()
    time.sleep(60)  # 1分ごとにチェック

コードの読み方:

  • schedule.every().day.at("09:00").do(daily_report) → 毎日9時に daily_report 関数を呼び出す
  • while True: → プログラムを終了せず動かし続ける無限ループ
  • time.sleep(60) → 1分間待機してから次のチェックへ

生成 AI への依頼例

「毎週月曜日の朝8時に、指定フォルダ内のCSVファイルを
 自動で集計してテキストファイルに保存するPythonコードを書いてください。
 scheduleライブラリを使ってください。」

2. 生成 AI を使ったコードの応用

「動くコード」から「使えるコード」へ育てる

生成 AI が作ったコードは、あくまでたたき台です。実際の業務に合わせて少しずつ改良していくことが大切です。ここでは、コードを発展させる3つのアプローチを紹介します。


アプローチ① 機能を追加してもらう

最初に作ったプログラムに、新しい機能をどんどん追加していきましょう。生成 AI に「さっきのコードに〇〇の機能を加えて」と伝えるだけで対応してくれます。

例:おみくじプログラムに機能追加

ベースのコード(第2章で登場):

python

import random
print(random.choice(["大吉", "中吉", "小吉", "吉", "凶"]))

生成 AI への依頼:

「このおみくじプログラムに、結果ごとにラッキーカラーも
 表示される機能を追加してください。」

拡張後のイメージ:

python

import random

results = {
    "大吉": "ラッキーカラー:ゴールド",
    "中吉": "ラッキーカラー:ブルー",
    "小吉": "ラッキーカラー:グリーン",
    "吉":   "ラッキーカラー:ホワイト",
    "凶":   "ラッキーカラー:グレー"
}

result = random.choice(list(results.keys()))
print(f"結果:{result}")
print(results[result])

アプローチ② 別のデータに応用する

同じ仕組みのコードを、別の場面や別のデータに使い回すことができます。

たとえば「売上CSVの集計コード」を作ったなら:

「さっきのCSV集計コードを、売上データではなく
 アンケート結果のCSVにも使えるように書き直してください。
 集計する列名を変数で指定できるようにしてください。」

汎用性を持たせることで、一度作ったコードの価値が何倍にも広がります。


アプローチ③ コードをシンプルにしてもらう

動くけど長くて読みにくい…そんなときは生成 AI にリファクタリング(コードの整理)を頼みましょう。

「このコードを、同じ動作を保ちながらもっとシンプルに
 書き直してください。関数を使ってまとめてください。」

3. エラーへの向き合い方(デバッグ)

エラーは「失敗」じゃなく「ヒント」

プログラムを動かすと、こんなメッセージが出ることがあります。

Traceback (most recent call last):
  File "sample.py", line 5, in <module>
    print(mesage)
NameError: name 'mesage' is not defined

「エラー=失敗」と思うと気が滅入りますが、実はエラーメッセージにはバグの場所と原因が書かれています。慌てず読んでみましょう。

エラーメッセージの読み方

NameError: name 'mesage' is not defined
部分意味
NameErrorエラーの種類(名前に関するエラー)
'mesage' is not definedmesage という名前が定義されていない

この場合、mesage はタイポ(打ち間違い)で、正しくは message です。よくあるエラーの多くは、スペルミス・インデントのズレ・全角スペースが原因です。

よくあるエラーと対処法

エラー名よくある原因対処法
NameError変数名の打ち間違いスペルを確認する
SyntaxError文法の間違い(カッコ漏れなど)エラー箇所の前後を見直す
IndentationErrorインデント(字下げ)のズレスペースの数を統一する
ModuleNotFoundErrorライブラリが未インストールpip install ライブラリ名 を実行

生成 AI にデバッグを手伝ってもらおう

エラーが解決できないときは、生成 AI に丸ごと投げてしまいましょう。

「以下のPythonコードを実行したら、このエラーが出ました。
 原因と修正方法を教えてください。

 【コード】
 (エラーが出たコードをそのままペースト)

 【エラーメッセージ】
 NameError: name 'mesage' is not defined」

コードとエラーメッセージをセットで貼り付けるのがポイントです。生成 AI は原因を特定し、修正済みのコードを返してくれます。


実践:定期実行 × 応用 × デバッグを組み合わせる

最後に、3つの要素を組み合わせた実践的な例を見てみましょう。

シナリオ:毎朝、売上CSVを自動で集計してコンソールに出力する

python

import schedule
import time
import pandas as pd

def summarize_sales():
    try:
        df = pd.read_csv("sales.csv")
        total = df["売上金額"].sum()
        print(f"本日の売上合計:{total:,} 円")
    except FileNotFoundError:
        print("CSVファイルが見つかりません。パスを確認してください。")
    except KeyError:
        print("「売上金額」列が見つかりません。列名を確認してください。")

# 毎朝 8:30 に実行
schedule.every().day.at("08:30").do(summarize_sales)

while True:
    schedule.run_pending()
    time.sleep(60)

try / except を使うことで、ファイルが見つからない・列名が違うといったエラーが起きてもプログラムが止まらずにメッセージを表示して続行できます。実務で使うコードには、こういったエラー対策を入れる習慣をつけましょう。


第3章まとめ

テーマ学んだこと
定期実行schedule ライブラリで、決まった時間にプログラムを自動で動かせる
応用機能追加・別データへの転用・コードの整理を生成 AI と一緒に進められる
デバッグエラーメッセージはヒント。種類を知り、生成 AI にも頼りながら解決する

ここまで3章を通じて、Python の入口から実践的な使い方まで一気に駆け抜けました。次はエピローグで、これからの学習をどう続けていくかをお伝えします!

コメント

タイトルとURLをコピーしました