カテゴリ: Python 更新日: 2025/10/29

Pythonの引数の使い方!デフォルト引数・可変長引数・キーワード引数の違い

Pythonの引数の使い方!デフォルト引数・可変長引数・キーワード引数の違い
Pythonの引数の使い方!デフォルト引数・可変長引数・キーワード引数の違い

先生と生徒の会話形式で理解しよう

生徒

「Pythonで関数に値を渡すときって、いろいろな書き方があるみたいですが、よくわからなくて……」

先生

「いいですね、関数の引数はPythonの基本の中でもとても大切なところです。デフォルト引数・可変長引数・キーワード引数など、いろんな書き方がありますよ。」

生徒

「それぞれどう違うんですか? 使い分けも教えてほしいです!」

先生

「もちろんです!順番に分かりやすく説明していきましょう。」

1. Pythonの関数と引数とは?

1. Pythonの関数と引数とは?
1. Pythonの関数と引数とは?

Pythonでは、関数(function)を使うことで、よく使う処理をまとめて何度でも使い回すことができます。関数に渡すデータのことを「引数(ひきすう)」と呼びます。

例えば、「名前を表示する関数」を作るとき、名前を引数として受け取ることで、いろいろな人の名前を表示できます。


def greet(name):
    print("こんにちは、" + name + "さん!")

greet("たろう")

こんにちは、たろうさん!

2. デフォルト引数:引数にあらかじめ値を設定する

2. デフォルト引数:引数にあらかじめ値を設定する
2. デフォルト引数:引数にあらかじめ値を設定する

デフォルト引数とは、関数の引数に「最初から決められた値(初期値)」を設定しておく方法です。引数を省略した場合でも、設定された値が使われるので便利です。


def greet(name="ゲスト"):
    print("こんにちは、" + name + "さん!")

greet()
greet("さくら")

こんにちは、ゲストさん!
こんにちは、さくらさん!

このように、引数を渡さなかった場合は「ゲスト」が使われ、渡した場合はその値が優先されます。

3. 可変長引数:引数の数が決まっていない場合に使う

3. 可変長引数:引数の数が決まっていない場合に使う
3. 可変長引数:引数の数が決まっていない場合に使う

可変長引数(かへんちょうひきすう)は、引数の数が決まっていないときに使う方法です。*(アスタリスク)を使うことで、いくつでも引数を受け取ることができます。


def show_fruits(*fruits):
    for fruit in fruits:
        print("フルーツ:", fruit)

show_fruits("りんご", "バナナ", "みかん")

フルーツ: りんご
フルーツ: バナナ
フルーツ: みかん

*fruitsは、受け取った複数の値をまとめてタプル(カンマ区切りのデータ)として扱います。

4. キーワード引数:引数名を指定して渡す

4. キーワード引数:引数名を指定して渡す
4. キーワード引数:引数名を指定して渡す

キーワード引数は、引数の名前を指定して値を渡す方法です。どの引数に何の値を渡しているかが分かりやすくなります。


def introduce(name, age):
    print(name + "さんは" + str(age) + "歳です。")

introduce(name="たろう", age=25)
introduce(age=30, name="はなこ")

たろうさんは25歳です。
はなこさんは30歳です。

このように、引数の順番を気にせずに渡すことができるのも特徴です。

5. キーワード可変長引数:名前付きの引数を自由に受け取る

5. キーワード可変長引数:名前付きの引数を自由に受け取る
5. キーワード可変長引数:名前付きの引数を自由に受け取る

さらに柔軟に対応したいときには、キーワード可変長引数が便利です。**(アスタリスク2つ)を使うことで、「名前=値」の形式でいくつでも引数を受け取れます。


def show_profile(**info):
    for key, value in info.items():
        print(key + ":", value)

show_profile(name="たろう", age=22, hobby="ゲーム")

name: たろう
age: 22
hobby: ゲーム

**infoは、受け取った値を辞書(キーと値のペア)として扱います。

6. 引数の順番と組み合わせに注意しよう

6. 引数の順番と組み合わせに注意しよう
6. 引数の順番と組み合わせに注意しよう

Pythonでは、引数を複数組み合わせて使うことができます。ただし、次の順番で定義する必要があります。

  • 通常の引数
  • デフォルト引数
  • 可変長引数(*args
  • キーワード可変長引数(**kwargs

def example(a, b=1, *args, **kwargs):
    print("a:", a)
    print("b:", b)
    print("args:", args)
    print("kwargs:", kwargs)

example(10, 20, 30, 40, name="たろう", age=25)

a: 10
b: 20
args: (30, 40)
kwargs: {'name': 'たろう', 'age': 25}

このように、引数の型ごとにきちんと順番を守ることで、エラーを避けることができます。

カテゴリの一覧へ
新着記事
New1
Flask
FlaskでSQLインジェクションを防ぐ方法!初心者でもわかる安全なデータベース操作
New2
Django
Djangoプロジェクトのディレクトリ構造を完全解説!初心者でも迷わないフォルダの見方
New3
Flask
Flask×Flask-SocketIOでチャットアプリを作る流れを初心者向けにやさしく解説
New4
Flask
Flaskアプリの作り方を基礎から学ぼう!初心者が覚えるべき開発の流れとは?
人気記事
No.1
Java&Spring記事人気No1
Django
Django環境構築の全手順を完全解説!初心者でも迷わないPython・Djangoセットアップガイド
No.2
Java&Spring記事人気No2
Flask
Flask-Loginでユーザー認証を完全ガイド!初心者でもわかるログイン処理の作り方
No.3
Java&Spring記事人気No3
Python
Pythonの文字列を1文字ずつ処理する方法!for文やlist化の活用例
No.4
Java&Spring記事人気No4
Python
PythonでHello Worldを表示するには?初心者向けに最初の1行を実行してみよう
No.5
Java&Spring記事人気No5
Python
Pythonで定数を定義する方法!変更されない変数の書き方と命名ルールを初心者向けに解説
No.6
Java&Spring記事人気No6
Python
Pythonでリストを文字列に変換する方法を完全ガイド!初心者でもわかるjoinの使い方
No.7
Java&Spring記事人気No7
Python
Pythonのmatch文(パターンマッチング)とは?switch文の代替としての使い方をやさしく解説
No.8
Java&Spring記事人気No8
Flask
FlaskアプリをNginx + Gunicornで本番運用する方法!初心者でもわかるデプロイ構成の基本