くり返しとデータの持ち方

INPUT · スライド

回数を決めてくり返す

01 / 07

3回書くのはつらい

あいさつを3回表示したい。いまの知識だと、こう書くしかないね。

3回ならまだいい。でも100回だったら? 1000回だったら? 同じ行をコピーして並べるやりかたは、すぐに行きづまってしまうよ。

print("こんにちは")print("こんにちは")print("こんにちは")

実行結果

こんにちは
こんにちは
こんにちは

02 / 07

for と range の形

そこで使うのが for(フォー)。くり返しのための書きかただよ。

  • for のうしろに受け取る変数を書く
  • in のうしろに range(3) と書いて回数を決める
  • 行の終わりを : で閉じて、次の行からスペース4つ下げて中身を書く

コロンと字下げは if とまったく同じ。下げた行がくり返されるよ。

for i in range(3):    print("こんにちは")

実行結果

こんにちは
こんにちは
こんにちは

03 / 07

i には何が入っているのか

i はただの変数で、くり返すたびに中身が入れかわる。何が入っているか、表示して確かめてみよう。

出てくるのは 0 1 2。1からではなく0から始まっているのがポイントだよ。

i という名前は、くり返しの番号につける習慣的な名前。kaisuu のように自分で分かる名前をつけてもいいよ。

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

実行結果

0
1
2

04 / 07

range(3) に 3 は入らない

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