Python 文法まとめ — 制御構文と関数の使い分け

Python 文法(制御構文と関数)の総まとめです。条件分岐・ループ・例外処理・関数応用を横断的に整理します。

Python 文法は「処理の流れを組み立てる道具」

Python 基礎では、int / str / list / dict といったデータを置くための型を学びました。本シリーズで扱った Python 文法 は、その上で 「データに対してどう処理を流すか」 を組み立てるための道具立てです。

大きく分けると 「条件で分岐する」「同じ処理を繰り返す」「失敗を受け止める」「処理をまとめて再利用する」 の 4 つの目的に整理できます。

データを「動かす」ための 4 つの柱
データ型int / str / list ...例外処理try / except分岐if / elif / else繰り返しfor / while関数def / lambda選ぶ回すまとめる
データ型の上に 分岐 / 繰り返し / 関数 / 例外処理 が乗ることで、初めて実用的なロジックが組み立てられる。

制御構文 — 分岐・繰り返し・例外

条件で処理を選ぶ if 系、要素を順番に処理する ループ系、失敗を受け止める 例外系 の 3 つを横断で整理します。

分類構文・関数代表的な使いどころ
条件分岐if / elif / else値や状態に応じて処理を分ける
条件分岐all() / any()リストの全要素・いずれかの要素が条件を満たすか一括判定
繰り返しfor + range / enumerate / zipコレクションの要素を順番に処理する
繰り返しwhile条件が成り立つ間だけ繰り返す(無限ループ防止に注意)
繰り返しリスト内包表記1 行で for + 条件 + 変換をまとめる
代入式セイウチ演算子 :=代入と判定を 1 行で書く(while / if の重複削減)
例外処理try / except / finally実行時エラーを捕まえて後始末する
例外発生raise / 自作例外クラス前提に合わない値が来たら自分から例外を投げる

関数まわり — 処理を再利用する道具

def で関数を定義する基本は単純ですが、Python の関数は 「値として渡せる」「中で関数を作れる」「装飾できる」 といった応用機能をひと通り持っており、これらがコードの再利用性とメンテナンス性を支えています。

関数の応用 4 系統
def(基本)*args**kwargsミュータブル引数の罠内部関数クロージャyieldジェネレーター高階関数関数を渡すlambda名前なし関数@decorator後付け装飾map()一括適用引数注意スコープ遅延値扱い短縮装飾適用
def を中心に、引数の柔軟さ(args/kwargs)/スコープの操作(クロージャ・nonlocal)/遅延評価(ジェネレーター)/装飾(高階関数・デコレータ・lambda・map)の 4 方向に拡張する。
分類構文・関数代表的な使いどころ
定義def / return処理に名前を付けて再利用する
引数*args / **kwargs と複数戻り値個数が決まらない引数を受け取る/呼び出し時に展開する
注意点ミュータブル引数の落とし穴list / dict 引数は呼び出し元と共有される。デフォルトは None 推奨
スコープ内部関数とクロージャ — global / nonlocal外側の変数を覚えた関数を作る/書き換える
遅延評価ジェネレーター関数 yield巨大な列を 1 要素ずつ生成し、メモリを節約する
関数を値として高階関数関数を引数や戻り値として扱う
関数を値としてラムダ式 lambda名前なしの 1 行関数
関数を値としてmap()リストの全要素に関数を一括適用
装飾デコレータ @ログ・計測・キャッシュを既存関数に後付け

ここから先 — class で「データと処理」を一体化する

次の Python オブジェクト指向 では、class を使ってデータ(属性)と処理(メソッド)を 1 つのオブジェクトにまとめる書き方 — オブジェクト指向プログラミング — について学びます。

Python 学習の全体像
Python 基礎型を選ぶPython 文法処理を組み立てるPython OOPデータと処理を一体化← 今ここ次への上にの上に
基礎 → 文法 → OOP と上から順に積み上げる。本シリーズは中段の「文法」を扱った。次は最下段の OOP に進む。
QUIZ

理解度チェック

まずは1問ずつ答えてみましょう。

Q1次のうち、「終わりが要素数で決まる」ループに最適なのはどれですか?

Q2リスト nums全要素が正の数か を判定するのに最も簡潔な書き方はどれですか?

Q3ログ出力や実行時間計測 など、共通処理を既存の関数に後付けしたいときに最も向いているのはどれですか?