同じ処理を何度もさせる
ループとは、同じ処理を何度もくり返す仕組みです。Python では、回数が決まっているときは for、条件が続く間くり返すときは while を使います。
毎月1000円ずつ、12か月貯金すると、いくらたまるでしょう。同じ足し算を12回書くかわりに、ループに12回させます。
このレッスンのゴール
メモ
for と while を使って、同じ処理をくり返すことができる。
キーワード
| ことば | いみ | れい |
|---|---|---|
| ループ | 同じ処理をくり返す仕組み | |
| range | 決まった範囲の整数を順に出すもの | range(1, 6) |
| 累積 | 値を少しずつ足して、合計を育てること | |
| break | ループを途中で終わらせる命令 | |
| 無限ループ | 終わらずに、くり返し続けるループ | |
| 入れ子 | ループの中に、別のループがあること |
学生が入力するセルは、このプレビューでは空白です。
for は決まった回数くり返す
for i in range(3): と書くと、i に 0、1、2 が順に入り、下げた行が3回実行されます。
range(3) は 0 から始まり、3は含みません。range(1, 6) は 1 から 5 までです。終わりの数は、いつも含みません。
3回くり返して表示する
python3 -c "for i in range(3): print(i)"ここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
例: range が出す数
| 書き方 | 出る数 | 回数 |
|---|---|---|
| range(3) | 0, 1, 2 | 3回 |
| range(1, 6) | 1, 2, 3, 4, 5 | 5回 |
| range(2, 10, 3) | 2, 5, 8 | 3回 |
| range(5, 5) | (なし) | 0回 |
学生が入力するセルは、このプレビューでは空白です。
よくある間違い
注意
「range(1, 5) は、1 から 5 までを出す」と考える人がいます。実際は 1 から 4 までです。終わりの数は含まれません。5 まで欲しいときは、range(1, 6) と書きます。
累積で、少しずつ合計を育てる
合計を出すには、先に total = 0 と置き、ループの中で total = total + n を実行します。右側の古い値に n を足して、同じ名前に入れ直します。
total = 0 を忘れると、足す元がなくてエラーになります。
例: 1から5を足すトレース表
| くり返し | n | total の古い値 | total の新しい値 |
|---|---|---|---|
| 1回目 | 1 | 0 | 1 |
| 2回目 | 2 | 1 | 3 |
| 3回目 | 3 | 3 | 6 |
| 4回目 | 4 | 6 | 10 |
| 5回目 | 5 | 10 | 15 |
学生が入力するセルは、このプレビューでは空白です。
合計のプログラムを書き出す
printf 'total = 0\nfor n in range(1, 6):\n total = total + n\nprint(total)\n' > sum.pyここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
実行して、表の最後の値と比べる
python3 sum.pyここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
ループの中で if を使う
# 1から10までに、偶数がいくつあるか数えます。
count = 0
for n in range(1, 11):
if n % 2 == 0:
count = count + 1
print("偶数の数:", count)
# range(1, 11) を range(1, 21) に変えて実行しましょう。
while は条件が続く間くり返す
while 条件: は、条件が True の間、下げた行をくり返します。回数が最初から決まっていないときに向いています。
条件がいつまでも True だと、無限ループになって終わりません。ループの中で、条件が変わるようにしてください。break を使うと、途中で抜けられます。
2倍にするプログラムを書き出す
printf 'n = 1\nwhile n < 100:\n n = n * 2\nprint(n)\n' > double.pyここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
実行して、止まる数を確かめる
python3 double.pyここでは表示のみで、実行されません。無料アカウントを作成すると、実行ボタンで自分のラボのターミナルに入力できます。
ループの中のループ
# 外側のループが行、内側のループが列です。
for row in range(1, 4):
line = ""
for column in range(1, 4):
line = line + str(row * column) + " "
print(line)
# range(1, 4) を range(1, 6) に変えて実行しましょう。