Pythonで関数を作ってみたけれど、「もっと柔軟に引数を使いたい」「引数の書き方が増えて混乱してきた」…そんな悩みを持つ初心者の方に向けて、今回は関数の引数の応用テクニックをやさしく解説します。
Google Colabで試せるコード例と、ChatGPTを使った学習方法も紹介しますので、この記事を通じて引数の理解を一歩進めましょう。
▶ 前回の記事はこちら:
👉 ChatGPTで学ぶPythonラムダ関数入門
引数とは?まずは基本からおさらい
Pythonの関数では、処理に必要な情報を「引数」として渡します。
def greet(name):
print(name + "さん、こんにちは!")
greet("たろう") # 出力: たろうさん、こんにちは!
このように、name
のような「引数」を関数に渡して使います。
この基本を押さえたうえで、次は応用的な引数の使い方を見ていきましょう。
デフォルト引数(初期値あり)を使ってみよう
引数にあらかじめ値を設定しておくことができます。
def greet(name="ゲスト"):
print(name + "さん、ようこそ!")
greet() # ゲストさん、ようこそ!
greet("さくら") # さくらさん、ようこそ!
- 引数を渡さなかった場合は「ゲスト」となります。
- デフォルト引数は後ろから順に書く必要があることに注意しましょう。
def sample(a=1, b): # ❌ エラーになります
これは文法エラーになるので、正しくは:
def sample(a, b=1): # ✅ OK
キーワード引数で順番を気にせず指定
関数を呼び出すときに、引数の名前を指定して渡す方法です。
def introduce(name, age):
print(f"私は{name}です。{age}歳です。")
introduce(age=25, name="たろう")
このように、順番を入れ替えても正しく動作します。
- 可読性が高くなる
- 必要な引数だけを指定できる
といったメリットがあります。
print(f"...")
の f
は、Pythonで使われる 「f文字列(フォーマット文字列)」 のことです。
f文字列は、文字列の中に変数をそのまま埋め込んで表示できる方法です。
引数の数が決まっていないとき
*args
と **kwargs
は、Pythonの関数で「引数の数が決まっていないときに使える便利な仕組み」です。
可変長引数 *args の使い方
*args
は、複数の値をまとめて受け取るための書き方です。
引数の数が決まっていないときは、*args
を使ってまとめて受け取ることができます。
関数の中ではタプル(複数の要素)として扱われます。
def total(*args):
print(args)
print(sum(args))
total(10, 20, 30)

print(args)は、各要素を表示します。10, 20, 30
print(sum(args))は、各要素を合計した値を表示します。10+20+30 = 60
キーワード可変長引数 **kwargs の使い方
ことができる書き方です。**kwargs
は「名前つきの引数をまとめて受け取る」
「キーワード引数(名前=値の形)」をいくつでもまとめて受け取れます。
関数の中では辞書(dict)として使われます。
def show_info(**kwargs):
print(kwargs)
show_info(name="さくら", age=22, country="日本")
実行結果:
{'name': 'さくら', 'age': 22, 'country': '日本'}

自由に引数を追加できる柔軟な関数が作れます。
ChatGPTで引数の意味を確認しよう
関数が複雑になると、どの引数が何を意味しているのか迷うことがあります。
そんなときはChatGPTを使って引数の意味を聞くのがおすすめです。
質問例:
- この関数の引数の意味を教えて?
- *args と **kwargs の違いは?
- キーワード引数を使ったサンプルコードを作って!
自分で考えるだけでなく、AIの力を借りることで、より深く理解できます。
よくあるミスとその対策
ミス内容 | 原因と対策 |
---|---|
デフォルト引数を先に書いてしまう | デフォルト引数は後ろに書く |
*args や **kwargs の混乱 | * は位置引数、** はキーワード引数用 |
キーワードの綴りミス | name → nmae などに注意 |
エラーが出たら、ChatGPTにエラー文を貼って聞いてみましょう。
まとめ|関数を柔軟に使いこなそう!
Pythonの関数は、引数の使い方を覚えることでぐっと使いやすくなります。
- デフォルト引数で省略可能に
- キーワード引数で可読性アップ
- *args や **kwargs で柔軟に対応
Google Colabで動かしながら試すと理解が早まります。
また、ChatGPTを活用すれば、わからないこともすぐに解決できます。
次回は、「関数とスコープ(変数の有効範囲)」について学びましょう!