LESSON 15

処理を組み合わせて解こう

関数・リスト・繰返し・条件分岐を一つのアルゴリズムにまとめます。

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

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

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

今回のファイル名lesson15_review.py

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

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

ここを確認:画面上のタブ、または左側のファイル一覧にlesson15_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. リスト全体へ関数を使う
  4. 途中の値を表で追う
  5. 必須問題で組み合わせる

長いプログラムを一度に読む必要はありません。「データを用意する」「一つを判定する」「結果を数える」「表示する」の順に区切ると、短いコードの集まりとして読めます。

入力→関数で判定→繰返して集計→出力

この講座では:長いコードを入力・処理・出力の3部分へ線で分けられれば十分です。共通テストでも、変数がどこで変わるかを区切って読みます。

STEP 2

合格者数を求めよう

今回のファイル名lesson15_step02.py

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

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

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

この順番で実践します
  1. lesson15_step02.pyへ、見本コードを一文字ずつ入力する
  2. まだ実行せず、結果を予想する
  3. 保存して、VS Code右上の▶を押す
  4. 下のターミナルと教材の結果を比べる
def is_pass(score):
    return score >= 60

scores = [55, 72, 61, 48, 90]
pass_count = 0

for score in scores:
    if is_pass(score):
        pass_count += 1

print(pass_count)

pass_countはいくつ?

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

STEP 3

途中の値を表で追おう

score60以上?pass_count
55×0
72○1
61○2
48×2
90○3

48を調べた直後のpass_countは?

STEP 4

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

今回のファイル名lesson15_step04.py

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

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

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

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

偶数を判定する関数

偶数ならTrueを返す関数を作ります。

考え方を見る

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

  1. 最初に問題文を読み、「何を作るか」「最後に何を表示するか」を確認します。
  2. 入力はn、処理は余りの判定、出力に使う戻り値はTrueまたはFalseです。

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

n % 2 == 0を返します。

答えを見る
def is_even(n):
    return n%2==0
print(is_even(8))

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

必須 2

条件に合う合計

リストから5以上の値だけを合計します。

考え方を見る

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

  1. 最初に問題文を読み、「何を作るか」「最後に何を表示するか」を確認します。
  2. 各値が5以上のときだけtotalへ足し、最後に一度だけ表示します。

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

totalを0にし、ifの中でnを足します。

答えを見る
data=[3,8,5,2]
total=0
for n in data:
    if n>=5:
        total+=n
print(total)

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

必須 3

平均以上の人数

平均を求め、その平均以上の値を数えます。

考え方を見る

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

  1. 最初に問題文を読み、「何を作るか」「最後に何を表示するか」を確認します。
  2. 先に平均を一度求め、その後で各値を平均と比べてcountを増やします。

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

先にaverageを求め、2回目の処理で人数を数えます。

答えを見る
data=[40,60,70,90]
average=sum(data)/len(data)
count=0
for n in data:
    if n>=average:
        count+=1
print(average, count)

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

実践したことを確認

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

時間が余ったら

できるだけ解いてみよう

全8問

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

  1. 1. 3以上を数える
    ヒントを見る

    if n>=3でcountを増やします。

    答えを見る
    for n in data:
        if n>=3: count+=1
  2. 2. 負の数だけ合計
    ヒントを見る

    n<0のとき足します。

    答えを見る
    if n<0: total+=n
  3. 3. 3倍する関数
    ヒントを見る

    x*3を返します。

    答えを見る
    def triple(x):
        return x*3
  4. 4. 関数を全要素へ使う
    ヒントを見る

    forの中で呼び出します。

    答えを見る
    for n in data:
        print(triple(n))
  5. 5. 最大値の場所を探す
    ヒントを見る

    値と添字を一緒に追います。

    答えを見る
    max_index=data.index(max(data))
  6. 6. 入力・処理・出力を分ける
    ヒントを見る

    代入、計算、printを分類します。

    答えを見る
    入力=data、処理=forとif、出力=print
  7. 7. countが増える条件を読む
    ヒントを見る

    ifの条件だけに注目します。

    答えを見る
    ifがTrueのときだけ1増える。
  8. 8. 途中表を作る列
    ヒントを見る

    ループ変数と更新変数を書きます。

    答えを見る
    n、条件の○×、countの3列