LESSON 09

whileと終了条件を理解しよう

条件が正しい間だけ繰り返し、終わるタイミングを自分で作ります。

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

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

前回までの候補から3問が表示されます。同じ復習用ファイルを書き換えながら、予想・保存・実行まで行います。

今回のファイル名lesson09_review.py

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

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

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

復習 1・第4回

forの回数

for i in range(3):
    print(i)

最後に表示される数は?

考え方を見る

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

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

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

復習 2・第5回

リストの添字

A=[4,7,9]
print(A[1])

表示される数は?

考え方を見る

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

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

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

復習 3・第7回

見つかったか記録

found=False
for n in [2,5,8]:
    if n==5:
        found=True
print(found)

表示されるものは?

考え方を見る

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

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

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

復習を終えたことを確認

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

◎
今日のゴール

whileの条件と変数の更新を読み、繰返しが終わる理由を説明できる。

  • ✓forとwhileの違いが分かる
  • ✓終了条件と変数の変化を追える
  • ✓breakで途中終了できる
STEP 1

whileはいつ使うの?

今からやること
  1. forとwhileの違いを知る
  2. 1から5まで表示する
  3. カウントダウンする
  4. 見つけたらbreakで終了する
  5. 必須問題で動きを確かめる

forは「5回」のように回数が先に分かるときに便利です。whileは「条件が正しい間」のように、いつ終わるかを条件で決めたいときに使います。

第8回:1周する→条件を確認→正しい間は実行→変数を更新→条件へ戻る

最重要:条件に使う変数を更新しないと、いつまでも終わらないことがあります。この講座では「条件・実行・更新」の3点を見つけられれば十分です。

STEP 2

1から5まで表示しよう

今回のファイル名lesson09_step02.py

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

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

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

この順番で実践します
  1. lesson09_step02.pyへ見本コードを一文字ずつ入力する
  2. 実行前に、表示される数字を紙へ書く
  3. 保存してVS Code右上の▶を押す
  4. 下部ターミナルの結果と教材を比べる
count = 1

while count <= 5:
    print(count)
    count = count + 1

print("終了")
繰返し前のcount表示更新後
112
223
334
445
556

whileが終わるときのcountは?

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

STEP 3

カウントダウンとbreakを試そう

whileでは変数を減らすこともできます。次のコードは5から1まで表示します。

count = 5
while count >= 1:
    print(count)
    count = count - 1
print("スタート")

最後に表示される文字は?

次に、リストから8を見つけたら、その場で繰返しを終えます。

for n in [3, 5, 8, 10]:
    print("確認", n)
    if n == 8:
        print("見つけた")
        break

10は確認される?

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

STEP 4

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

今回のファイル名lesson09_step04.py

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

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

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

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

1から4まで表示

whileを使って1から4まで表示します。

考え方を見る

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

  1. 最初に問題文を読み、「何を作るか」「最後に何を表示するか」を確認します。
  2. countを1から始め、4以下の間だけ繰り返します。

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

最後にcount += 1を書き、毎回1増やします。

答えを見る
count=1
while count<=4:
    print(count)
    count+=1

1、2、3、4が1行ずつ表示されたら成功です。

必須 2

3から1へカウントダウン

3から1まで表示し、最後に「終了」と表示します。

考え方を見る

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

  1. 最初に問題文を読み、「何を作るか」「最後に何を表示するか」を確認します。
  2. 3以上ではなく、1以上の間続け、毎回1減らします。

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

条件はcount >= 1、更新はcount -= 1です。

答えを見る
count=3
while count>=1:
    print(count)
    count-=1
print("終了")

3、2、1、終了の順に表示されたら成功です。

必須 3

見つけたら終了

[2, 4, 7, 9]から7を探し、見つけたところで終了します。

考え方を見る

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

  1. 最初に問題文を読み、「何を作るか」「最後に何を表示するか」を確認します。
  2. 各値をtargetと比べ、一致したときだけbreakします。

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

if n == target:の中で表示してbreakします。

答えを見る
target=7
for n in [2,4,7,9]:
    print("確認", n)
    if n==target:
        print("発見")
        break

確認2、確認4、確認7、発見と表示され、9が出なければ成功です。

実践したことを確認

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

時間が余ったら

できるだけ解いてみよう

全10問

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

  1. 1. 1から10まで表示する
    ヒントを見る

    countを1から始め、10以下の間続けます。

    答えを見る
    count=1
    while count<=10:
        print(count)
        count+=1
  2. 2. 10から1までカウントダウン
    ヒントを見る

    表示した後でcountを1減らします。

    答えを見る
    count=10
    while count>=1:
        print(count)
        count-=1
  3. 3. 2、4、6、8を表示
    ヒントを見る

    2から始め、2ずつ増やします。

    答えを見る
    n=2
    while n<=8:
        print(n)
        n+=2
  4. 4. 合計が10以上で終了
    ヒントを見る

    合計を増やし、条件がFalseになる場所を確認します。

    答えを見る
    total=0
    n=1
    while total<10:
        total+=n
        n+=1
    print(total)
  5. 5. 5を見つけたら終了
    ヒントを見る

    一致したときにbreakします。

    答えを見る
    for n in [2,5,8]:
        if n==5:
            print("発見")
            break
  6. 6. 3回だけ入力をまねる
    ヒントを見る

    今回はinputを使わず、countで回数を管理します。

    答えを見る
    count=0
    while count<3:
        print("入力する回", count+1)
        count+=1
  7. 7. 無限ループになる原因
    ヒントを見る

    条件に使う変数が変わっているか見ます。

    答えを見る
    countを増減しないと、条件がずっとTrueのままになるため。
  8. 8. forとwhileの使い分け
    ヒントを見る

    回数が先に分かるかを考えます。

    答えを見る
    回数が決まっているならfor、条件まで続けるならwhileが便利。
  9. 9. breakの役割
    ヒントを見る

    ループの残りを行うか考えます。

    答えを見る
    条件を満たした時点で、繰返し全体を終了する。
  10. 10. 変数表を作る
    ヒントを見る

    countと表示値の2列にします。

    答えを見る
    各周の開始時のcountと、更新後のcountを書く。