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 "変数" in "イテラブル"  : (処理が1つの時にはここに”処理”も可能)
     "処理1" (4字又は8字の下げ)  
     "処理2" (4字又は8字の下げ)
         :

(表1 for 文の基本構文例)
① 基本はイテラブルなデータを順に変数に代入
② 処理は4又は8字の字下げ
③ range関数での配列からの代入
④ 複数の処理は同じ字下げをする
⑤ 変数が一致する配列間での代入
⑥ 処理が1行処理なら直後に記載も可能
⑦ 要素タイプの異なるリストからの代入が可能
⑧ イテラブルな変数からの代入
⑨ forループのイテラブルデータは途中変更出来ない


* for の入れ子とcontinue, break,elseとの組み合わせフロー

 for文を入れ子にすることで、組み合わせた結果を得ることが出来る。また、if条件文などと組み合わせてループのスキップ(continue)や中断(break)、for ループ終了後の後処理(else)が設定できる。

構文   for "変数" in "イテラブル"  : (処理が1つの時にはここに”処理”も可能)
     "処理1,2,…" (4字又は8字の下げ)    
     continue (字下げ。以降の処理を実行せずに、次のループに進む) 
     break (字下げ。以降の処理を実行しない。forループも中断する) 
    else :"後処理"  (字下げなし。forループが最後まで実施された後の処理設定) 

(表2 forの入子、if条件と continue break 組み合わせ。forとelseの組み合わせ)

① 2重のfor(入れ子)で組み合わせを作る
  for 文を2重にすることで変数の組み合わせで処理が出来る。 3重4重と重ねればたくさんの組み合わせを処理できる。 ただ、for文は処理としては少し遅いので、莫大な処理になれば処理時間も長くなるので注意が必要。

② continue: はジャンプして、次のループに進む
  設定した処理が必要ない場合に対してcontinueを組み合わせる。for のループは継続して進められる。

③ break: はforループが中断して次のコードに進む
  設定した処理が以後のループでも必要ない場合に対してbreakを組み合わせる。for のループも終了する。

④⑤ else: はforループがbreakなしで終了の場合に実行する後処理
  for ループがすべて処理された場合に追加的に行う処理設定。for の終了がbreak したかどうかを判定することが出来る。

iterable は一回毎にメンバーを 1 つずつ返すことができるように設計されているオブジェクト。
iterable 設定のclassは: list,str,tuple,renge, dic, file, numpy.ndarray
参照 : https://docs.python.org/3/glossary.html#term-iterable



〇 関連する公開記事

 ・ リストの作成、要素の追加・削除、アクセスと変更




以上

IG.Python Note

PythonプログラミングのためのTips集です。 趣味のPythonプログラミングをしていると、必要なプログラミング情報を自分で取集することが必要になります。 集めた情報を整理しておくと便利なので、個人的な学習メモとして記録を作りました。

0コメント

  • 1000 / 1000