Python独学ならTech-Joho TOP > Python入門カリキュラム > たくさんのデータで同じ処理を繰り返す
For文とは
For文は、リストのようなたくさんのデータのまとまりの中の、一つ一つについて、同じ処理を繰り返すことのできる文です。
例えば、0から3までの数字をリストにまとめ、それぞれの数字をprint文を使って表示するプログラムを、下のように書くことができます。
>>> for i in [0,1,2,3]: ... print('今の数字:'+str(i)) ... 今の数字:0 今の数字:1 今の数字:2 今の数字:3
* for文とは関係ありませんが、str()関数で、整数(int)型の数値を文字列に変えているところに気をつけて下さい。
For文の構造
For文には、どんなFor文でも常に必要な部分と、どのようなデータをどのような繰り返し処理したいか、によって変わる部分があります。
それを図に書いてみました。
この図の白い字の部分、「for」、「in」、「:」の3つはどんなfor文にも必ず出てきます。
この図の赤い字の部分「一つ一つの要素」、「リストなどのデータの塊」、「「一つ一つの要素」を使った処理」の3つは、その時for文を使ってどのようなことをしたいかによって変わります。
例えば、上の0から3の数字を表示する例では、
「一つ一つの要素」が変数”i”、
「リストなどのデータの塊」が整数のリスト”[0, 1, 2, 3]”、
「「一つ一つの要素」を使った処理」が、”print(‘今の数字:’+str(i))”、というpythonの文で、「今の数字:」という文字列のあと、変数iを文字列に変換してprint文で表示しています。
このように、forの後ろには”i”、”value”、”hensuu”のように「一つ一つの要素」を入れる好きな変数名を、inの後ろには「リストなどのデータの塊」を書くことになります。
For文が動く3つのステップ
このfor文の意味、動き方は3ステップに分けて考えると分かりやすいと思います。
- inの後ろに書いた「リストなどのデータの塊」から、順番にデータを1つ取り出す
- 取り出したデータが、forの後ろに書いた「一つ一つの要素」に代入される
- forの下のブロックに書いた「一つ一つの要素」を使って何か処理をする
- ステップ1に戻り、「リストなどのデータの塊」の次のデータを取り出す
- 以下、繰り返し…
0から3の数字を表示するfor文の動きを、このステップ毎に考えてみましょう。
ステップ1:inの後ろに書いた「リストなどのデータの塊」から、順番にデータを1つ取り出す
>>> for i in [0,1,2,3]:
「リストなどのデータの塊」は、inの後ろに書いてあります。
この例だと、”[0,1,2,3]”です。
そこから、順番にデータを一つ取り出します。
まずは、一番最初の”0″です。
ステップ2:取り出したデータが、forの後ろに書いた「一つ一つの要素」に代入される
>>> for i in [0,1,2,3]:
「リストなどのデー
「一つ一つの要素」はforの後ろに書いてあります。
forの後ろは”i”です。
つまり、iに0が代入されます。
このあと、for文の下のブロック(字下げされた部分、つまり「「一つ一つの要素」を使った処理」のところ)では、iは0です。
ステップ3:forの下のブロックに書いた「一つ一つの要素」を使って何か処理をする
... print('今の数字:'+str(i))
「「一つ一つの要素」を使った処理」は、”print(‘今の数字:’+str(i))”、つまり、
‘今の数字:’という文字列を、iという変数に入ってる内容をくっつけてprint文で表示されています。
iは今は0なので、”print(‘今の数字:’+str(i))”は、”print(‘今の数字:0’)”と同じことです。
最終的に、’今の数字:0’と表示されます。
ステップ1に戻り、「リストなどのデータの塊」の次のデータを取り出す
ここまでで、for文の下のブロック(字下げされた部分、つまり「「一つ一つの要素」を使った処理」のところ)が終わりました。
今度は、ステップ1に戻ってまた同じことを繰り返します。
ただし、今度はステップ1では、リストに入っている次のデータを取り出します。
つまり、0のとなりの1です。
先程はiが0でしたが、今度はiに1が代入されます。
すると、最終的に’今の数字:1’と表示されます。
同じ要領で、0, 1, 2, 3とリストの中の数字が順番にiに代入され、そのiを使ってforの下に書いた処理が実行されていきます。
結果として、0から3の数字が全て下のように表示されることになります。
今の数字:0 今の数字:1 今の数字:2 今の数字:3
For文の練習問題
For文の書き方、動き方についてわかりましたか?
練習問題を幾つか用意したので、これをときながら、しっかり理解しているかどうか確認してみましょう。