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

性格診断プログラム

🎯 きょうのミッション

3つの質問に答えると、4つの性格タイプのどれかに分けてくれる診断プログラムを作ります。質問の答えで点数を足していくしくみです。

🧠 できるようになること

  • 複数の input と if を組み合わせる
  • ポイントを加算する変数の使い方を覚える
  • 結果を最後にまとめて表示するプログラムが書ける

🧰 用意するもの

  • パソコン
  • ブラウザ(Chrome / Edge / Safari)
  • インターネット接続
  • このページの「▶ このページで実行」ボタン(コードをそのまま動かせます)
  • Trinket(予備の実行サイト:https://trinket.io/python)

🖼 できあがり

3つの質問に「はい/いいえ」で答えると、点数によってA・B・C・Dの4タイプのどれかが診断されます。

📺 実行結果
質問1:朝早く起きるのが好き?(はい/いいえ): はい
質問2:1人で本を読むのが好き?(はい/いいえ): いいえ
質問3:新しい場所に行くとワクワクする?(はい/いいえ): はい
──────────────
あなたの性格タイプは:B(活動的タイプ)

🚀 やりかた

  1. score = 0 でポイント変数を作ります。
  2. 3つの質問を input で順番に聞きます。
  3. 「はい」と答えた質問ごとに score += 1 でポイントを足します。
  4. if〜elif でスコアによってタイプを決めます。
  5. 最後にまとめて結果を表示します。

🐍 きょうのコード

Python main.py
score = 0

q1 = input("質問1:朝早く起きるのが好き?(はい/いいえ): ")
if q1 == "はい":
    score += 1

q2 = input("質問2:1人で本を読むのが好き?(はい/いいえ): ")
if q2 == "はい":
    score += 1

q3 = input("質問3:新しい場所に行くとワクワクする?(はい/いいえ): ")
if q3 == "はい":
    score += 1

print("──────────────")
if score == 0:
    print("あなたの性格タイプは:A(のんびりタイプ)")
elif score == 1:
    print("あなたの性格タイプは:B(活動的タイプ)")
elif score == 2:
    print("あなたの性格タイプは:C(バランスタイプ)")
else:
    print("あなたの性格タイプは:D(パワフルタイプ)")
▶ Trinketを開いて動かす

このページの「▶ このページで実行」でそのまま動きます。Trinketを使うときは、上のコードをコピーして左のエリアに貼り付け、Runボタン(▶)を押します。

💡 きょうのポイント

score += 1 は score = score + 1 の短い書き方。変数の値を変えながら使うことができ、ゲームのスコア計算でも頻出のパターンです。

🎮 チャレンジ

  • 質問を5つに増やして、診断の精度を上げよう
  • 「はい」と「いいえ」の両方でポイントが入るようにしてバランスを取ろう
  • 結果に詳しい説明文(5行くらい)を付けて占い師っぽくしよう

🔁 ふりかえり

  • score += 1 はどんな処理をしている?
  • 性格診断は本当に正しい?プログラムの限界はどこ?
  • もっと複雑な診断(16パターン)を作るには何が必要?

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

  • 準備:なし。
  • つまずきポイント:「はい」と「Yes」「y」など複数の答え方を許したいとき、or や in を使う必要があります。今回は「はい」固定でOK。
  • 声かけ例:「あなたが診断士になった気分」を強調。クラスメイトや家族に診断してあげる場面を想像させると盛り上がります。