カテゴリ: Python 更新日: 2026/03/06

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)とは?使い方とメリットを初心者向けに解説

Pythonで関数を作るとき、「渡したいデータの数がその時々で変わる」という場面があります。例えば、買い物リストを表示する関数を作る際、商品が2つの場合もあれば、5つの場合もありますよね。そんな時に便利なのが「可変長引数(かへんちょうひきすう)」です。

関数の引数名の前に*(アスタリスク)を付けるだけで、バラバラに渡された複数の値を、Pythonが自動的に1つの「タプル(ひとまとめの箱)」として受け取ってくれます。これにより、引数の数をあらかじめ決めておく必要がなくなり、コードの柔軟性が格段に上がります。

基本的な書き方とサンプルコード

まずは、複数のフルーツの名前を表示する簡単なプログラムを見てみましょう。引数の数に注目してください。


# 引数名の前に「*」をつけるのがポイント
def show_items(*items):
    # itemsの中には、渡されたデータがタプルとしてまとまって入っています
    for item in items:
        print(f"リストにある商品: {item}")

# 3つのデータを渡す場合
show_items("りんご", "みかん", "バナナ")

# 1つだけ渡す場合でも、エラーにならずに動作します
show_items("メロン")

リストにある商品: りんご
リストにある商品: みかん
リストにある商品: バナナ
リストにある商品: メロン

プログラミング未経験の方にとって、「引数の数を固定しない」という考え方は少し特殊に感じるかもしれません。しかし、この*args(慣習的にargsと書くことが多いです)を使いこなせると、同じ関数を使い回せるシーンが大幅に増え、スッキリとした読みやすいプログラムを書くことができるようになります。

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でデータベースの接続プールを使う方法を徹底解説!初心者向けPythonデータベース接続プール入門
New2
Python
Pythonの例外チェーンを完全ガイド!初心者でもわかるfrom句を使ったエラーハンドリング
New3
PHP
PHPのCSVファイルの読み書きと文字列処理を基礎から解説!初心者向けガイド
New4
PHP
PHPのメモリ管理と変数の破棄方法をやさしく解説!初心者でもわかるunsetの使い方
人気記事
No.1
Java&Spring記事人気No1
Python
PythonでExcelファイル(.xlsx)を操作する方法を徹底解説!初心者でもできるopenpyxl・pandasの使い方
No.2
Java&Spring記事人気No2
PHP
PHP のフォームデータの受け取り($_POST, $_GET)を完全解説!初心者向けガイド
No.3
Java&Spring記事人気No3
Python
Pythonのコンストラクタ(__init__)の使い方!初心者でもわかるオブジェクトの初期化
No.4
Java&Spring記事人気No4
PHP
PHPのデバッグ方法を完全ガイド!初心者でもわかるvar_dump・print_r・error_log
No.5
Java&Spring記事人気No5
PHP
PHPの特殊文字とエスケープ処理を完全ガイド!初心者向けにhtmlspecialcharsとhtmlentitiesをやさしく解説
No.6
Java&Spring記事人気No6
Python
Pythonで文字列が数値か判定する方法!isdigit()・isnumeric()の違い
No.7
Java&Spring記事人気No7
PHP
PHPのfor, while, do-whileループの使い方を完全ガイド!初心者でもわかる繰り返し処理
No.8
Java&Spring記事人気No8
Python
Pythonの書き方を基本から解説!はじめてのPythonプログラム