LESSON 14

度数を数えて棒グラフにしよう

データを区切って数え、分布の形を目で確認します。

40分
必須
必須・これまでの復習

これまでの内容から、3問を復習しよう

前回までの問題からランダムに3問が表示されます。同じ復習用ファイルを書き換えながら進めます。

今回のファイル名lesson14_review.py

レッスン番号と使う場面が分かる名前にして、あとで探しやすくします。

  1. VS Code上部の「ファイル」をクリック
  2. 「新しいテキスト ファイル」をクリック
  3. Ctrl+S(Macは⌘+S)を押す
  4. lesson14_review.pyと入力して「保存」を押す

ここを確認:画面上のタブ、または左側のファイル一覧にlesson14_review.pyと表示されたら準備完了です。

復習 1・第1回

表示

print(8 + 4)

結果は?

考え方を見る

最初から全部を理解しなくて大丈夫です。問題を小さな処理に分け、上から順番に見ていきます。

  1. 最初に問題文を読み、「結果は?」の答えとして何を確かめるのか決めます。
  2. 次にコードを上から読みます。変数へ入る値、繰返し、条件分岐が出てきたら、その行で何が変わるかを一つずつ紙に書きます。
  3. 最後に表示される値や残った値を選択肢と比べます。この問題では「8+4で12です。」という流れに注目します。
ヒントを見る

コードを自分で考えて作る問題ではありません。上にある見本コードを、復習用ファイルへ一文字ずつそのまま入力します。入力したら保存し、VS Code右上の▶を押します。画面下のターミナルに出た結果と選択肢を比べてください。記号や字下げが分からないときは、見本と同じ位置・同じ数にそろえれば大丈夫です。

復習 2・第2回

変数

x=5
x=x*3
print(x)

最後のxは?

考え方を見る

最初から全部を理解しなくて大丈夫です。問題を小さな処理に分け、上から順番に見ていきます。

  1. 最初に問題文を読み、「最後のxは?」の答えとして何を確かめるのか決めます。
  2. 次にコードを上から読みます。変数へ入る値、繰返し、条件分岐が出てきたら、その行で何が変わるかを一つずつ紙に書きます。
  3. 最後に表示される値や残った値を選択肢と比べます。この問題では「5の3倍で15です。」という流れに注目します。
ヒントを見る

コードを自分で考えて作る問題ではありません。上にある見本コードを、復習用ファイルへ一文字ずつそのまま入力します。入力したら保存し、VS Code右上の▶を押します。画面下のターミナルに出た結果と選択肢を比べてください。記号や字下げが分からないときは、見本と同じ位置・同じ数にそろえれば大丈夫です。

復習 3・第3回

条件分岐

n=7
if n>=5:
    print("A")

表示は?

考え方を見る

最初から全部を理解しなくて大丈夫です。問題を小さな処理に分け、上から順番に見ていきます。

  1. 最初に問題文を読み、「表示は?」の答えとして何を確かめるのか決めます。
  2. 次にコードを上から読みます。変数へ入る値、繰返し、条件分岐が出てきたら、その行で何が変わるかを一つずつ紙に書きます。
  3. 最後に表示される値や残った値を選択肢と比べます。この問題では「7は5以上です。」という流れに注目します。
ヒントを見る

コードを自分で考えて作る問題ではありません。上にある見本コードを、復習用ファイルへ一文字ずつそのまま入力します。入力したら保存し、VS Code右上の▶を押します。画面下のターミナルに出た結果と選択肢を比べてください。記号や字下げが分からないときは、見本と同じ位置・同じ数にそろえれば大丈夫です。

復習を終えたことを確認

実際に自分のパソコンで行ってから、チェックを入れてください。

◎
今日のゴール

値を区間に分け、度数表と簡単な棒グラフを作れる。

  • ✓度数の意味が分かる
  • ✓条件分岐で区間を分けられる
  • ✓棒の長さと人数を結びつけられる
STEP 1

なぜ数えるだけでは足りないの?

今からやること
  1. 度数と分布の意味を知る
  2. 点数を3つの区間へ分ける
  3. 文字の棒グラフを表示する
  4. グラフから多い区間を読む
  5. 必須問題で作り直す

20人の点数をそのまま並べても、どのあたりに多いか分かりにくいことがあります。点数を区間に分け、人数を数えると全体の形が見えます。

第12回:データ→第13回:代表値→第14回:区間別の個数

この講座では:境界を小さい順に調べ、各区間の個数を棒の長さにできれば十分です。

STEP 2

度数を数えて表示しよう

今回のファイル名lesson14_step02.py

レッスン番号と使う場面が分かる名前にして、あとで探しやすくします。

  1. VS Code上部の「ファイル」をクリック
  2. 「新しいテキスト ファイル」をクリック
  3. Ctrl+S(Macは⌘+S)を押す
  4. lesson14_step02.pyと入力して「保存」を押す

ここを確認:画面上のタブ、または左側のファイル一覧にlesson14_step02.pyと表示されたら準備完了です。

この順番で実践します
  1. lesson14_step02.pyへ、見本コードを一文字ずつ入力する
  2. まだ実行せず、結果を予想する
  3. 保存して、VS Code右上の▶を押す
  4. 下のターミナルと教材の結果を比べる
scores = [45, 62, 75, 81, 90, 58, 77, 84]
counts = [0, 0, 0]

for score in scores:
    if score < 60:
        counts[0] += 1
    elif score < 80:
        counts[1] += 1
    else:
        counts[2] += 1

print("0-59", "■" * counts[0])
print("60-79", "■" * counts[1])
print("80-100", "■" * counts[2])

60〜79点の度数はいくつ?

先に自分のパソコンで実行しましょう。画面に出た結果を見てから、下のボタンを押します。

STEP 3

条件の順番を理解しよう

elif score < 80へ来た時点で、60未満ではないことが分かっています。そのため、この道は60以上80未満です。

60未満?→いいえ→80未満?→60〜79点

scoreが80のとき、どこへ入る?

STEP 4

ここまで分かったか確認しよう

今回のファイル名lesson14_step04.py

この回の必須問題で使うファイルです。問題ごとに中身を書き換えます。

  1. VS Code上部の「ファイル」をクリック
  2. 「新しいテキスト ファイル」をクリック
  3. Ctrl+S(Macは⌘+S)を押す
  4. lesson14_step04.pyと入力して「保存」を押す

ここを確認:画面上のタブ、または左側のファイル一覧にlesson14_step04.pyと表示されたら準備完了です。

必須問題の進め方
  1. lesson14_step04.pyを作る
  2. 問題のコードを入力して保存・実行する
  3. 同じファイルを書き換えて次の問題へ進む
必須 1

奇数と偶数を数える

[1,2,3,4,5,6]を奇数と偶数に分けます。

考え方を見る

最初から全部を理解しなくて大丈夫です。問題を小さな処理に分け、上から順番に見ていきます。

  1. 最初に問題文を読み、「何を作るか」「最後に何を表示するか」を確認します。
  2. 2で割った余りが0ならeven、そうでなければoddだけを1増やします。

  3. 次にコードを上から一行ずつ読みます。値が変わるたびに紙へ書き、最後の結果が問題の条件に合うか確かめます。
ヒントを見る

2で割った余りが0なら偶数です。

答えを見る
data=[1,2,3,4,5,6]
even=0
odd=0
for n in data:
    if n%2==0:
        even+=1
    else:
        odd+=1
print(even, odd)

3 3と表示されたら成功です。

必須 2

4区間へ分ける

点数を0〜49、50〜69、70〜89、90以上へ分けます。

考え方を見る

最初から全部を理解しなくて大丈夫です。問題を小さな処理に分け、上から順番に見ていきます。

  1. 最初に問題文を読み、「何を作るか」「最後に何を表示するか」を確認します。
  2. 50、70、90の境界を小さい順に調べ、一つの区間だけを1増やします。

  3. 次にコードを上から一行ずつ読みます。値が変わるたびに紙へ書き、最後の結果が問題の条件に合うか確かめます。
ヒントを見る

小さい境界から順にif、elifを書きます。

答えを見る
scores=[45,62,75,81,90,58,77,84]
counts=[0,0,0,0]
for score in scores:
    if score<50: counts[0]+=1
    elif score<70: counts[1]+=1
    elif score<90: counts[2]+=1
    else: counts[3]+=1
print(counts)

[1, 2, 4, 1]と表示されたら成功です。

必須 3

棒を表示する

度数[2,5,3]を■の棒で表示します。

考え方を見る

最初から全部を理解しなくて大丈夫です。問題を小さな処理に分け、上から順番に見ていきます。

  1. 最初に問題文を読み、「何を作るか」「最後に何を表示するか」を確認します。
  2. 各度数を一つずつ取り出し、■をその数だけ繰り返します。

  3. 次にコードを上から一行ずつ読みます。値が変わるたびに紙へ書き、最後の結果が問題の条件に合うか確かめます。
ヒントを見る

文字列に数を掛けると同じ文字を繰り返せます。

答えを見る
counts=[2,5,3]
for count in counts:
    print("■"*count)

■が2個、5個、3個の3行になれば成功です。

実践したことを確認

実際に自分のパソコンで行ってから、チェックを入れてください。

時間が余ったら

できるだけ解いてみよう

全8問

全部終わらなくても大丈夫です。上から順番に挑戦しましょう。

  1. 1. 10未満と10以上を数える
    ヒントを見る

    countsを二つ用意します。

    答えを見る
    if n<10: counts[0]+=1
    else: counts[1]+=1
  2. 2. 度数3の棒を表示
    ヒントを見る

    ■に3を掛けます。

    答えを見る
    print("■"*3)
  3. 3. 0〜9、10〜19、20以上へ分ける
    ヒントを見る

    境界10、20を順に調べます。

    答えを見る
    if n<10: ...
    elif n<20: ...
    else: ...
  4. 4. 最も多い区間を探す
    ヒントを見る

    度数の最大値を求めます。

    答えを見る
    print(max(counts))
  5. 5. 度数の合計を確認
    ヒントを見る

    元データの個数と一致します。

    答えを見る
    print(sum(counts), len(data))
  6. 6. 棒グラフの利点
    ヒントを見る

    数の大小を目で比べます。

    答えを見る
    どの区間が多いかを素早く比べられる。
  7. 7. 境界値60の行き先
    ヒントを見る

    60未満には入りません。

    答えを見る
    60以上の次の区間へ入る。
  8. 8. 横棒へ数も付ける
    ヒントを見る

    棒とcountを同時にprintします。

    答えを見る
    print("■"*count, count)