プログラミング入門

【Python入門】関数(def文)の使い方を完全解説|引数・return・デフォルト値まで

Pythonで関数(Function)を使いこなせると、コードの品質が一気に上がります。この記事では def 文によるPython関数の定義方法から、引数・デフォルト値・return文・スコープまでを初心者向けにわかりやすく解説します。Pythonを基礎からシリーズで学んでいる方は、前回の Part 5:リスト・辞書などのコレクション もあわせてご覧ください。

関数(Function)とは?Pythonにおける基本概念

関数とは、特定の処理をひとまとまりにした再利用可能なコードのブロックです。同じ処理を何度も書く代わりに、一度関数として定義しておけば何度でも呼び出せます。

たとえば「挨拶を表示する」処理を毎回べた書きするのは非効率ですよね。関数にまとめてしまえばコードがスッキリしますし、修正も一箇所で済みます。プログラミングでは DRY原則(Don’t Repeat Yourself) と呼ばれる考え方で、関数はその代表的な実現手段です。

Pythonで関数を定義する基本構文(def文)

Pythonで関数を定義するには def キーワードを使います。基本的な書き方は次のとおりです。

# 関数の定義
def greet(name):
    message = f"こんにちは、{name}さん!"
    return message

# 関数の呼び出し
result = greet("田中")
print(result)   # → こんにちは、田中さん!

result2 = greet("鈴木")
print(result2)  # → こんにちは、鈴木さん!

def文の構文ルール:押さえておくべき4つのポイント

  • def 関数名(引数): で定義スタート
  • インデント(字下げ)した部分が関数の中身になる
  • return で呼び出し元に値を返す(省略するとNoneが返る)
  • 関数名に () をつけることで呼び出せる

引数(Arguments)の使い方

引数とは、関数を呼び出すときに渡すデータのことです。Pythonの関数では複数の引数を受け取ることができます。

複数の引数を受け取る関数

def introduce(name, age, hobby):
    return f"私は{name}です。{age}歳で、趣味は{hobby}です。"

print(introduce("田中", 25, "読書"))
# → 私は田中です。25歳で、趣味は読書です。

キーワード引数(Keyword Arguments)

引数名を明示して渡すことで、順番を気にせずに呼び出せます。これをキーワード引数と呼びます。

print(introduce(age=25, hobby="読書", name="田中"))
# → 私は田中です。25歳で、趣味は読書です。

デフォルト引数(Default Arguments)の設定方法

引数にデフォルト値を設定すると、呼び出し時に省略した場合にその値が自動で使われます。実務でもよく使うパターンなのでしっかり覚えておきましょう。

# デフォルト引数を使った消費税計算の例
def calculate_total(price, tax_rate=0.1):
    total = price * (1 + tax_rate)
    return total

# tax_rateを省略 → デフォルトの0.1(10%)が使われる
print(calculate_total(1000))        # → 1100.0

# 軽減税率8%を明示的に指定
print(calculate_total(1000, 0.08))  # → 1080.0

デフォルトを10%にしておき、軽減税率8%のときは明示的に渡す、というイメージです。デフォルト引数は必ず通常引数の後に定義する必要がある点に注意してください。

return文の使い方と戻り値

return 文は関数の処理結果を呼び出し元に返すための命令です。複数の値を同時に返すこともできます。

# 複数の戻り値を返す関数(タプルとして返る)
def min_max(numbers):
    return min(numbers), max(numbers)

data = [3, 1, 4, 1, 5, 9, 2, 6]
smallest, largest = min_max(data)
print(f"最小値: {smallest}, 最大値: {largest}")
# → 最小値: 1, 最大値: 9

returnを書かない(または return だけ書く)場合は、Pythonは自動的に None を返します。意図しないバグにつながることがあるので覚えておきましょう。

スコープ(Scope):変数の有効範囲を理解しよう

Pythonの関数を学ぶうえで欠かせない概念がスコープ(変数の有効範囲)です。関数の中で定義した変数は、関数の外からはアクセスできません。

def sample_function():
    local_var = "私は関数の中だけで生きています"
    print(local_var)  # → OK

sample_function()
# print(local_var)  # → NameError: 関数の外からはアクセスできない!

関数の内側にある変数をローカル変数、関数の外(モジュールレベル)にある変数をグローバル変数と呼びます。グローバル変数は関数の中から参照できますが、むやみに変更するのはバグのもとになるため注意が必要です。

可変長引数:*args と **kwargs

引数の数が事前に決まらない場合は、*args(タプルで受け取る)や **kwargs(辞書で受け取る)を使います。

# *args:任意の数の引数をタプルで受け取る
def total_price(*prices):
    return sum(prices)

print(total_price(100, 200, 300))      # → 600
print(total_price(500, 1200, 80, 300)) # → 2080

# **kwargs:キーワード引数を辞書で受け取る
def show_profile(**info):
    for key, value in info.items():
        print(f"{key}: {value}")

show_profile(name="田中", age=25, city="東京")
# → name: 田中
# → age: 25
# → city: 東京

Python関数を使うメリットまとめ

関数を活用すると、以下のようなメリットが得られます。

  • コードの再利用:同じ処理を何度も書かなくてOK
  • 可読性アップ:処理に名前がつくので読みやすくなる
  • メンテナンスが楽:修正は関数の中だけ変えればいい
  • デバッグしやすい:処理を分割することでバグの特定が早くなる
  • テストが書きやすい:関数単位で動作確認できる

まとめ:Python関数(def文)の使い方をおさらい

今回は Python for Beginners Part 6:関数(Functions) として、以下の内容を解説しました。

  • def 文による関数の定義方法
  • 引数・キーワード引数の使い方
  • デフォルト引数の設定
  • return 文と複数の戻り値
  • スコープ(ローカル変数・グローバル変数)
  • *args / **kwargs による可変長引数

関数はPythonプログラミングの核心とも言える概念です。ここをしっかり押さえると一気にコードの質が上がります。元記事は dev.to の Python for Beginners — Part 6 で公開されています。シリーズ通して読むとPythonの基礎が体系的に身につくのでオススメです!

👉 前の記事:Part 5:リスト・辞書などのコレクション(Collections)を学ぼう
👉 次の記事:Part 7:モジュールとライブラリの使い方(近日公開)

引き続き一緒に学んでいきましょう🚀 わからない点があればコメントで気軽に質問してください!

ABOUT ME
やまちゃん
これまで学生と社会人を合わせて5000人以上にプログラミング学習を指導。 ゼロからイチをわかりやすく解説する専門家として活動しており、本業ではArduinoを用いたIoT開発とロボットプログラミングが専門。 Pythonを用いたアプリ開発、ウェブアプリケーションの開発で業務の効率化をサポートしています。

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です