#for文
for文は繰り返し処理を行いたいときに使う。
書き方等は後述するが、一つのfor文に対して一方向の繰り返し処理が行われる。
例えば、エクセルファイル等の行と列があるような場合で、
すべてのセルに対して処理を行いたい場合は
一方向の繰り返し処理では対応できない。
そのような場合は、for文中にもう一度for文を用いることで
二方向での繰り返し処理を行うことが出来る。
#記述方法
for 繰り返し変数 in オブジェクトの集合:
がfor文の記述方法である。
オブジェクトの集合とは、リストのような一つの変数名で複数のデータが入ってる変数をいう。
この複数のデータを一つづつ取り出して、そのデータに対してfor文内の処理が適用される。
for文中では取り出されたデータは繰り返し変数として扱われる。
list=[1,2,3,4,5]
for element in list:
print(element)
>>>1
>>>2
>>>3
>>>4
>>>5
#for文中のfor文
次にfor文中でfor文を記述することを考える。
今回はその例として九九を出力することを目指す。
以下が九九を出力するプログラムである。
list1=[1,2,3,4,5,6,7,8,9]
list2=[1,2,3,4,5,6,7,8,9]
for m in list1:
for n in list2:
print("{0}×{1}={2}".format(m,n,m*n))
>>>"1×1=1"
>>>"1×2=2"
>>> ...
>>>"1×9=9"
>>>"2×1=2"
>>>...
外側のfor文では繰り返し変数がmである。
内側のfor文では繰り返し変数がnである。
まず最初に外側のfor文が実行され、mにlist1から一つ目の要素である1が格納される。
次に内側のfor文が実行され、nにlist2から一つ目の要素である1が格納される。
そして内側のfor文中の処理であるprint文が実行され、結果が出力される。
内側のfor文中の処理が完了した後、内側のfor文の繰り返し処理が始まる。
したがって、nにlist2から二つ目の要素である2が格納され、for文中の処理が行われることになる。
この操作が繰り返されるといずれ、
nにlsit2の最後の要素である9が格納されfor文中の処理が実行される。
この最後の要素でfor文中の処理を完了した時、内側のfor文は終了する。
内側のfor文の処理が終了後、次に外側のfor文の繰り返しが始まる。
要するにmにlist1の二つ目の要素である2が格納され、
そしてもう一度内側のfor文が実行される。
#繰り返し回数(計算回数)
先にみたように、for文中にfor文を記述する(外側のfor文と内側のfor文が存在する)ことで、
繰り返し中の繰り返しを行うことが出来る。
外側のfor文の繰り返し回数がNであり、内側のfor文の繰り返し回数がnであると、
繰り返し回数はN×n回となる。
#よく使う繰り返し処理(指定回数繰り返し)
プログラムを組んでいくと、5回この処理を実行したい、10回この処理を実行したいなど
特定の回数分繰り返し処理を行いたい場合がある。
この場合の一つの方法として、range関数を使う方法がある。
for i in range(5):
print(i)
>>>0
>>>1
>>>2
>>>3
>>>4
このrnage関数の代わりに、エクセルなどの最大行数をとってくる.max_row()メソッドなど指定することで全ての行に対する処理や、全ての列(.max_column())に対する処理を行うことが出来る。