for :イテラブル要素を順に設定する回数指定のループ
個人学習のNoteです。初心者向けにPythonの基本部分を紹介しています。
§ プログラミング >フロー制御 >for ループ
for 文は処理を繰り返し行う命令です。プログラミングは類似する計算処理を繰り返すことで莫大な処理を行います。 for はイテラブルなオブジェクトから要素を順に取り出して変数に代入して処理を行う、回数設定の繰り返し処理となります。序数を作るrenge 関数との組み合わせで回数を指定した繰り返し処理を設定するケースも多い。
参照 : https://docs.python.org/3/reference/compound_stmts.html#the-for-statement
* オブジェクトのメンバー数の処理を繰返すFor
forはイテラブル〈iterable : 反復可能〉なオブジェクトからのメンバーを 1 つずつ順に取り出して変数に代入します。1回の取り出た後に行う処理を設定することでイテラブルなオブジェクトのメンバー数だけ繰り返しの処理が出来ます。for文による繰り返しは最初に決められたイテラブルなオブジェクトで決められて途中での変更は出来ません。
< for 構文 のコーディング >
for 変数 in イテラブル : (処理が1つの時にはここに記載もできる)
(字下げ) 処理1
(字下げ) 処理2
:
① for の後に変数(複数列記可能)、in 、イテラブルなデータ、コロン(:)の順に記載する。
イテラブル(1つずつ順番に取り出し可能)なデータから、順番にデータを取り出して変数に代入する命令。
② 処理は4又は8字の字下げしてコーディングする。
文字下げ(インテンド)が継続されている場合は一連の処理として実行される。
③ 複数の変数に代入する場合には、イテラブルからの取り出すデータと要素数が一致する。
④ 処理が1行処理なら直後に記載も可能。
⑤ イテラブルデータを後の処理中で変更しても、変数に代入されるデータは変わらない。
for 文としてイテラブルデータを固定して記録されている。
⑥ 序数をイテラブルデータとする場合はrange関数を使う場合が多い。
⑦ イテラブルデータとして要素タイプの異なるリストも可能。
<for 文の基本構文例> : 表1
* for の入れ子とcontinue, break,elseとの組み合わせフロー
for文を入れ子にすることで、組み合わせた結果を得ることが出来る。また、if条件文などと組み合わせてループのスキップ(continue)や中断(break)、for ループ終了後の後処理(else)が設定できる。
< for 構文 の入れ子コーディング >
for 変数1 in イテラブル1 : (変数1にイテラブル1の要素を順次代入する)
(字下げ) 処理1 (変数1に値が代入された状態での処理)
(字下げ) for 変数2 in イテラブル2 : (変数2にイテラブル2の要素を順次代入する)
(字下げ)(字下げ) 処理2 (変数1と変数2に値が代入された状態での処理)
① 2重のfor(入れ子)で組み合わせを作る
for 文を2重にすることで変数の組み合わせで処理が出来る。 3重4重と重ねればたくさんの組み合わせを処理できる。 ただ、for文は処理としては少し遅いので、莫大な処理になれば処理時間も長くなるので注意が必要。
< for 構文 のcontinue, break,else >
for 変数1 in イテラブル1 :
(字下げ) 処理1
(字下げ) if 条件式 :
(字下げ)(字下げ) continue (以降の処理を実行せずに、次のループに進む)
(字下げ) if 条件式 :
(字下げ)(字下げ) break (以降の処理を実行しない。forループも中断する)
else : (字下げなし。イテラブル要素が最後まで処理された後の処理)
(字下げ) 後処理
② continue: if条件との組み合わせでジャンプして、次に進む
設定した処理が必要ない場合に対してcontinueを組み合わせる。for 文は継続して次のイテラブルデータの代入に進められる。
③ break: if条件との組み合わせでforが中断してforの次のコードに進む
設定した処理が以後のfor 処理が必要なくなった場合に対してbreakを組み合わせる。for の一連の処理が中断する。
④ else: forがbrakeなしで終了の場合に実行する後処理
for でのイテラブルデータがすべて代入して処理がなされた場合に、追加的に行う処理の設定。for の終了がbreak して終了した場合には実行されない。
< 表2 forの入子、if条件と continue brake 組み合わせ。forとelseの組み合わせ >
iterable は一回毎にメンバーを 1 つずつ返すことができるように設計されているオブジェクト。
iterable 設定のclassは: list,str,tuple,renge, dic, file, numpy.ndarray
参照 :
https://docs.python.org/3/glossary.html#term-iterable
〇 関連する公開記事
以上