デジタルこどもBASEのロゴ 特定非営利活動法人デジタルこどもBASE 📚 目次
第35回 Lv1 ⏱ 25〜35分

ミニ作品:相談ボット

🎯 きょうのミッション

Lv1のしめくくりです。「相談ボット」を作ります。複数の質問に答えてもらい、答えに応じてはげましのメッセージを返すプログラム。input・if・elif・f-string をすべて使います。

🧠 できるようになること

  • 複数の質問とその回答を組み合わせて応答できる
  • Lv1で学んだすべての要素を組み合わせる
  • 自分のオリジナル相談ボットを完成させる

🧰 用意するもの

🖼 できあがり

「いま元気?」「学校は楽しい?」「最近うれしかったことは?」など3つの質問に答えると、その答えに応じて違うメッセージが返ってきます。

📺 実行結果
🤖 こんにちは!相談ボットです。
お名前は? はなこ
いま元気?(はい/いいえ): いいえ
どんなときがつらい? 勉強
──────────────
はなこさん、元気がないんだね。
勉強がつらいときは、まず深呼吸して、5分だけ休んでみて。
少しずつでだいじょうぶ。応援しているよ。

🚀 やりかた

  1. 名前を聞く。
  2. 「いま元気?」を聞いて、答えで分岐するメッセージを準備。
  3. つらいことを具体的に聞く。
  4. 答えに応じてアドバイスを変える。
  5. f-stringで名前を入れた応援メッセージを表示。

🐍 きょうのコード

Python main.py
print("🤖 こんにちは!相談ボットです。")

name = input("お名前は? ")
ok = input("いま元気?(はい/いいえ): ")

print("──────────────")

if ok == "はい":
    print(f"よかった!{name}さん、その調子で今日も楽しもう。")
else:
    trouble = input("どんなときがつらい? ")
    print(f"{name}さん、元気がないんだね。")
    if trouble == "勉強":
        print("勉強がつらいときは、まず深呼吸して、5分だけ休んでみて。")
    elif trouble == "友達":
        print("人間関係はむずかしいよね。今日は無理せず、自分を大事にして。")
    else:
        print(f"{trouble}でつらいんだね。話してくれてありがとう。")
    print("少しずつでだいじょうぶ。応援しているよ。")
▶ Trinketを開いて動かす

上のコードをコピーして、Trinketの左のエリアに貼り付け、Runボタン(▶)を押すと動きます。

💡 きょうのポイント

Lv1で学んだ inputif/elif/elsef-string変数 をすべて組み合わせると、こんな対話プログラムが作れます。これがプログラミングの基本パターン。次のLv2では、これに「くりかえし」と「リスト」が加わります。

🎮 チャレンジ

  • 質問を5つ以上にして、もっと深く聞ける相談ボットにしよう
  • 答えに応じたアドバイスをもっとバリエーション豊かにしよう
  • 最後に「もう一度話す?」と聞いて、Yesなら最初に戻れるようにしよう(次回でやります)

🔁 ふりかえり

  • Lv1で学んだ機能で、一番役に立ったのは?
  • 相談ボットを作ってみて、本物のAIチャットボットとは何が違うと思う?
  • 次のLv2では「くりかえし」が出てきます。何が便利になりそう?

👨‍👩‍👧 おうちの人・先生へ

  • 準備:なし。
  • つまずきポイントif の中に if を入れる(ネスト)でインデントが2段階になります。インデントの段数を意識させてください。
  • 声かけ例:「LINEのチャットボットや、お店の予約ボットも、こういう仕組みでできている」と現実とつなげると関心が深まります。
  • 所要時間:25〜35分。創作要素が大きいので個人差あり。
  • 発展:本物のAIチャットボット(ChatGPTなど)は機械学習で作られていますが、ルールベースのボットは今回のような if の集まりです。