01 / 07
3回書くのはつらい
あいさつを3回表示したい。いまの知識だと、こう書くしかないね。
3回ならまだいい。でも100回だったら? 1000回だったら? 同じ行をコピーして並べるやりかたは、すぐに行きづまってしまうよ。
print("こんにちは")print("こんにちは")print("こんにちは")実行結果
こんにちは こんにちは こんにちは
くり返しとデータの持ち方
INPUT · スライド
01 / 07
あいさつを3回表示したい。いまの知識だと、こう書くしかないね。
3回ならまだいい。でも100回だったら? 1000回だったら? 同じ行をコピーして並べるやりかたは、すぐに行きづまってしまうよ。
print("こんにちは")print("こんにちは")print("こんにちは")実行結果
こんにちは こんにちは こんにちは
02 / 07
そこで使うのが for(フォー)。くり返しのための書きかただよ。
for のうしろに受け取る変数を書くin のうしろに range(3) と書いて回数を決める: で閉じて、次の行からスペース4つ下げて中身を書くコロンと字下げは if とまったく同じ。下げた行がくり返されるよ。
for i in range(3): print("こんにちは")実行結果
こんにちは こんにちは こんにちは
03 / 07
i はただの変数で、くり返すたびに中身が入れかわる。何が入っているか、表示して確かめてみよう。
出てくるのは 0 1 2。1からではなく0から始まっているのがポイントだよ。
i という名前は、くり返しの番号につける習慣的な名前。kaisuu のように自分で分かる名前をつけてもいいよ。
for i in range(3): print(i)実行結果
0 1 2
04 / 07
range(3) が作るのは 0 1 2 の3つ。3 は入らないんだ。
「3回まわる」と「3が出てくる」は別のこと。ここは最初に必ずつまずくところだよ。個数は合っている、最後の数だけ1つ手前と覚えよう。
for i in range(4): print(i)実行結果
0 1 2 3
05 / 07
range にはカンマで区切って2つの数を渡せる。そうすると「始まりから、終わりの手前まで」になるよ。
range(1, 4) なら 1 2 3。ここでもうしろの数は入らない。1から数えたいときはこちらを使おう。
for i in range(1, 4): print(i)実行結果
1 2 3
06 / 07
if のときと同じで、下げた行だけがくり返される。左端に戻した行は、くり返しが全部終わったあとに1回だけ動くよ。
どこまでを中に入れるかで動きががらりと変わる。字下げがくり返しの範囲を決めているんだ。
for i in range(3): print(i)print("おわり")実行結果
0 1 2 おわり
07 / 07
中に書けるのは print だけではない。変数を書きかえることもできるよ。
下の例は、0 を入れた入れ物を先に用意して、そこへ i を足しこんでいく形。くり返しが終わったあとに表示すると合計が出る。
この「外に入れ物を用意して、中で足していく」形はこの先ずっと使うので、ここで覚えてしまおう。
goukei = 0for i in range(1, 4): goukei += iprint(goukei)実行結果
6