処理に名前を付けてまとめたい
第4章の tenki では、摂氏を華氏に直す計算(t * 1.8 + 32)や、「暑い・ちょうどいい・寒い」の判定を、使う場所に直接書いていました。同じ計算をあちこちに書くと、直すときに全部を探して回ることになります。
そこで関数です。処理のまとまりに名前を付けて、何度でも呼べるようにします。考え方は JS とまったく同じで、書き方が少し違うだけ です。
| JS | Python | |
|---|---|---|
| 関数を作る | function toF(c) { … } | def to_f(c): と字下げ |
| 小さな関数 | (c) => c * 1.8 + 32 | lambda c: c * 1.8 + 32 |
| 名前の付け方 | toF(camelCase) | to_f(snake_case。PEP 8) |
| 呼ぶ | toF(30) | to_f(30) |
def は define(定義する)の略です。ブロックの範囲は、第3章で見たとおり : と字下げで決まります。
この章では、書き方に加えて、関数を呼んだとき、名前とオブジェクトに何が起きているのかを、第4章の「札」の図で追いかけます。そうすると、JS から来た人がつまずきやすい「関数に list を渡したら元が変わった」「デフォルト引数に [] を書いたら、呼ぶたびに増えていく」「関数の中で外の変数に足そうとしたらエラーになった」が、全部同じ絵で説明できるようになります。
※2026年9月時点(Python 3.13)の情報です。