Keep your place in this quest

Log in or sign up for free to subscribe, follow lesson progress, and access more learning content.

これまでに、いくつかのコードパターンが繰り返されることに気づいたかもしれません。
もし、そのコードをひとつのパッケージにまとめて名前をつけ、必要なときに書き直さずに実行できたらどうでしょう?

まさにそれが関数の役割です。

関数は、あなたのプログラム内に存在するミニプログラムのようなものと考えてください。
名前があり、入力を受け取り、処理を行い、(必要に応じて)何かを返します。


なぜ関数を使うのか?

関数はプログラミングにおいて最も強力なツールの一つで、以下の利点があります:

  • 繰り返しを避ける — 一度書けば、どこでも使える。
  • コードを整理する — 大きな問題を小さく管理しやすい部分に分ける。
  • テストを簡単にする — プログラム全体を実行せずに、一部分のロジックを検証できる。

ヒント:関数はキッチンの家電のようなものです。毎回手で生地を混ぜることもできますが、ミキサーは速く、均一に混ぜられ、必要なときに何度でも使えます。

最初の関数を定義する

Pythonでは、defキーワードを使って関数を作成(定義)します。続けて関数名、入力用の括弧(パラメータと呼ばれる)、そしてコロンを書きます。
関数に属するコードはインデントして書きます。

例:

def square(number):
    return number * number

print(square(4))  # 16

内容は以下の通りです:

  1. square を定義し、1つのパラメータ number を受け取る。
  2. 関数内で number を自分自身と掛け合わせ、結果を返す。
  3. square(4) を呼び出し、number に 4 が渡される。
  4. 関数は 16 を返し、それを print() が表示する。

重要!: return 文は呼び出し元に値を返します。これを忘れると、関数は None を返します。将来的に、すべての関数が何かを返すわけではなく、単にいくつかの処理を行うだけのケースもあることを学びます。

複数のパラメータを持つ関数

関数は必要な数だけ入力を受け取れます。値はカンマで区切って括弧内に置きます。

例:

def add(num1, num2):
    return num1 + num2

result = add(5, 6)
print(result)  # 11

ここでは、関数呼び出し時に num1 に 5、num2 に 6 が入ります。関数内で足し合わせ、合計を返します。

注意num1num2 は関数内だけで存在するローカル変数です。

デフォルトのパラメータ値

時には、ユーザーが常に値を渡さなくてもいいように、パラメータにデフォルト値を与えたいことがあります。

例:

def greet(name, greeting="Hello"):
    print(f"{greeting}, {name}!")

greet("John")                   # デフォルトの挨拶を使う
greet("Maria", "Good evening")  # カスタムの挨拶を使う

挨拶が渡されなければ "Hello" が使われ、渡された場合はそれが優先されます。

ヒント:デフォルト値は関数定義の必須パラメータの後に書く必要があります。

まとめ

関数は、より大きく、よりきれいで、より賢いプログラムを作るためのあなたの道具箱です。 何度でも呼び出せて、異なる入力を渡し、一貫した処理を期待できます。

次のレッスンでは 再帰 を探ります — 自分自身を呼び出す特別な関数です。聞き慣れないかもしれませんが、特定の問題へのエレガントな解決策の扉を開きます。