カテゴリ: Python 更新日: 2026/02/01

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

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

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

生徒

「Pythonの関数で引数っていろいろな種類があるみたいですが、違いがよく分かりません…」

先生

「引数には、デフォルト引数・可変長引数・キーワード引数といった種類があります。それぞれ特徴や使い方が違いますよ。」

生徒

「なんだか難しそうですが、順番に教えてもらえますか?」

先生

「もちろんです。順に例を交えながら説明しますね!」

-

1. デフォルト引数とは?(引数の初期設定)

1. デフォルト引数とは?(引数の初期設定)
1. デフォルト引数とは?(引数の初期設定)

Pythonの関数では、あらかじめ引数に特定の値をセットしておくことができます。これを「デフォルト引数」と呼びます。

通常、関数を呼び出すときは引数に値を渡す必要がありますが、デフォルト引数が設定されていれば、値を渡さなかった(省略した)場合に自動的にその初期値が使われます。

例えば、ネットショップの注文画面で「配送希望日」を入力しない場合に、自動的に「最短でお届け」という設定になるようなイメージです。プログラミング未経験の方でも、以下の「あいさつ」の例を見ると仕組みがすぐに分かりますよ。


# nameという引数に、あらかじめ "ゲスト" という値をセットしておきます
def greet(name="ゲスト"):
    print(f"こんにちは、{name}さん!")

# 引数を指定せずに呼び出す(省略する)
greet()

# 引数に自分の好きな名前を指定して呼び出す
greet("太郎")

こんにちは、ゲストさん!
こんにちは、太郎さん!

コードの解説をすると、1回目のgreet()では何も渡していないため、初期設定の「ゲスト」が表示されます。2回目のgreet("太郎")では、新しい値が優先されるため「太郎」が表示されます。

この機能を使うことで、「基本的にはこの値でいいけれど、必要な時だけ変更したい」という柔軟なプログラムが簡単に作れるようになります。関数の使い勝手がぐっと良くなる便利なテクニックです。

2. 可変長引数(*args)とは?

2. 可変長引数(*args)とは?
2. 可変長引数(*args)とは?

可変長引数は、受け取る引数の数が決まっていない場合に使います。関数の定義で引数名の前に*を付けると、複数の値をタプルとして受け取れます。


def show_items(*items):
    for item in items:
        print(item)

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

りんご
みかん
バナナ

これにより、引数の数が不定のときでも柔軟に対応できます。

3. キーワード引数(**kwargs)とは?

3. キーワード引数(**kwargs)とは?
3. キーワード引数(**kwargs)とは?

キーワード引数は、引数名と値をペアで受け取る仕組みです。引数名の前に**を付けると、複数の名前付き引数を辞書型として受け取れます。


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

show_profile(name="太郎", age=20, city="東京")

name: 太郎
age: 20
city: 東京

辞書型で受け取れるので、柔軟なデータ構造をそのまま関数に渡せます。

4. 引数の組み合わせ

4. 引数の組み合わせ
4. 引数の組み合わせ

デフォルト引数・可変長引数・キーワード引数は、同じ関数で組み合わせて使うこともできます。ただし、引数の並び順には注意が必要です。

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

def order(item, quantity=1, *extras, **options):
    print(f"商品: {item}, 数量: {quantity}")
    print("追加オプション:", extras)
    print("詳細設定:", options)

order("コーヒー", 2, "ミルク", "砂糖", size="L", temperature="hot")

商品: コーヒー, 数量: 2
追加オプション: ('ミルク', '砂糖')
詳細設定: {'size': 'L', 'temperature': 'hot'}

このように組み合わせることで、複雑な注文や設定もシンプルに記述できます。

-

5. 初心者が覚えるべきポイント

5. 初心者が覚えるべきポイント
5. 初心者が覚えるべきポイント
  • デフォルト引数は省略時の値を設定できる
  • 可変長引数(*args)は複数の値をまとめて受け取れる
  • キーワード引数(**kwargs)は辞書型で名前付きデータを受け取れる
  • 引数の順番に注意(通常 → デフォルト → *args → **kwargs)

これらを理解すれば、関数をより柔軟に使いこなせるようになります。

コメント
コメント投稿は、ログインしてください

まだ口コミはありません。

カテゴリの一覧へ
新着記事
New1
Python
Pythonの変数スコープとは?初心者でもわかるローカル変数とグローバル変数の違い
New2
Python
PythonのNoneとは?NoneTypeの使い方とnullとの違いをわかりやすく解説
New3
Python
Pythonで文字列の長さを取得する方法!len()の基本と応用
New4
PHP
PHP のインストール方法(Windows・Mac・Linux)と開発環境
-
人気記事
No.1
Java&Spring記事人気No1
Python
Pythonで文字列が数値か判定する方法!isdigit()・isnumeric()の違い
No.2
Java&Spring記事人気No2
Python
Pythonでファイルの更新日やサイズを取得する方法!初心者でもわかるos.stat()の使い方
No.3
Java&Spring記事人気No3
Python
Pythonの書き方を基本から解説!はじめてのPythonプログラム
No.4
Java&Spring記事人気No4
PHP
PHPでREST APIを作る方法を完全ガイド!初心者でもわかるAPI開発入門
No.5
Java&Spring記事人気No5
PHP
初心者向けにPHP でファイルを開く・読み込む・書き込む方法(fopen, fwrite, fread)を解説する記事
No.6
Java&Spring記事人気No6
PHP
PHP のインストール方法(Windows・Mac・Linux)と開発環境
No.7
Java&Spring記事人気No7
Python
Pythonのクラスとは?初心者向けにわかるオブジェクト指向とインスタンス作成の基本
No.8
Java&Spring記事人気No8
Python
Pythonのコンストラクタ(__init__)の使い方を解説!初心者でもわかるオブジェクトの初期化
-
-