Python3 エンジニア認定基礎試験 練習問題 Day16:関数のデフォルト引数とキーワード引数

【本日のミッション】

Day15では「関数の定義と呼び出し」を学びました。
今日は 柔軟な関数呼び出しを可能にする仕組み

デフォルト引数キーワード引数 を学んでいきましょう。


デフォルト引数とは?

  • 引数にデフォルト値を設定できる

  • 引数が省略された場合、そのデフォルト値が使われる

例:

def greet(name="Guest"):
    return "Hello, " + name

print(greet())
print(greet("Alice"))

出力結果

Hello, Guest
Hello, Alice

キーワード引数とは?

  • 関数呼び出し時に 引数名=値 の形式で指定できる

  • 引数の順序を気にせず呼び出せる

例:

def profile(name, age):
    return f"{name} is {age} years old."

print(profile(age=25, name="Bob"))

出力結果

Bob is 25 years old.

練習問題

次のコードを実行すると、どのような結果になるでしょうか?

def introduce(name, age=20):
    return f"{name} is {age} years old."

print(introduce("Alice"))
print(introduce("Bob", 30))
print(introduce(age=40, name="Charlie"))

選択肢

A)

Alice is 20 years old.
Bob is 30 years old.
Charlie is 40 years old.

B)

Alice is 20 years old.
Bob is 20 years old.
Charlie is 40 years old.

C)

エラーになる

D)

Alice is 20 years old.
Bob is 30 years old.
introduce(age=40, name="Charlie")


解答

A)

Alice is 20 years old.
Bob is 30 years old.
Charlie is 40 years old.

■■■スポンサーリンク■■■

解説

def introduce(name, age=20):
    return f"{name} is {age} years old."

まず age にデフォルト値 20 を設定します。そのため 引数を省略すると自動的に 20 が使われます。

print(introduce("Alice"))

age を指定しなかったので、デフォルト値が使われる → "Alice is 20 years old."

print(introduce("Bob", 30))

次に、2つ目の引数に 30 を指定すると → "Bob is 30 years old."

print(introduce(age=40, name="Charlie"))

最後に、キーワード引数で順序を入れ替えて指定すると → "Charlie is 40 years old."


👉 正解は

A)

Alice is 20 years old.
Bob is 30 years old.
Charlie is 40 years old.

✅ポイント

  • デフォルト引数:省略時に既定値が使われる

  • キーワード引数:引数名を指定して順序を無視できる

  • デフォルト引数は「可変オブジェクト」を使うとバグの原因になるので注意!(例:リストをデフォルトにするなど)


学習のヒント

試験では「デフォルト引数」と「キーワード引数の順序」が狙われやすいです。

def calc(a, b=10, c=5):
    return a + b + c

print(calc(1))
print(calc(1, c=20))
print(calc(b=2, a=3, c=4))

出力結果

16
31
9

デフォルト値の利用やキーワード指定の柔軟さを理解しましょう。


次回予告

Day17では **「可変長引数(*args, kwargs)」 を学びます。

複数の値を柔軟に受け取る関数定義ができるようになります。


参考

Python 3 エンジニア認定基礎試験 – Odyssey CBT
Python3 エンジニア認定基礎試験 出題範囲と学習プラン
Python3 エンジニア認定基礎試験 練習問題 Day1:変数の基本
Python3 エンジニア認定基礎試験 練習問題 Day2:変数の型(int型とstr型)
Python3 エンジニア認定基礎試験 練習問題 Day3:算術演算子と代入演算子
Python3 エンジニア認定基礎試験 練習問題 Day4:文字列の操作
Python3 エンジニア認定基礎試験 練習問題 Day5:比較演算子と論理演算子
Python3 エンジニア認定基礎試験 練習問題 Day6:if文(条件分岐)
Python3 エンジニア認定基礎試験 練習問題 Day7:ループ処理(for文・while文)
Python3 エンジニア認定基礎試験 練習問題 Day8:break文とcontinue文
Python3 エンジニア認定基礎試験 練習問題 Day9:リスト(list)の基本
Python3 エンジニア認定基礎試験 練習問題 Day10:リストの操作(append,remove,len など)
Python3 エンジニア認定基礎試験 練習問題 Day11:リストのスライス(部分取り出し)
Python3 エンジニア認定基礎試験 練習問題 Day12:タプル(tuple)の基本
Python3 エンジニア認定基礎試験 練習問題 Day13:辞書(dict)の基本
Python3 エンジニア認定基礎試験 練習問題 Day14:集合(set)の基本
Python3 エンジニア認定基礎試験 練習問題 Day15:関数の定義と呼び出し
Python3 エンジニア認定基礎試験 練習問題 Day16:関数のデフォルト引数とキーワード引数
Python3 エンジニア認定基礎試験 練習問題 Day17:可変長引数(*args, **kwargs)
Python3 エンジニア認定基礎試験 練習問題 Day18:関数のスコープ(ローカル変数とグローバル変数)
Python3 エンジニア認定基礎試験 練習問題 Day19:ネスト関数(関数の中の関数)
Python3 エンジニア認定基礎試験 練習問題 Day20:ラムダ式(無名関数)
Python3 エンジニア認定基礎試験 練習問題 Day21:組み込み関数(len, type, range など)
Python3 エンジニア認定基礎試験 練習問題 Day22:組み込み関数(sum,max,min,sorted)
Python3 エンジニア認定基礎試験 練習問題 Day23:文字列と組み込み関数(len,str,int,float)
Python3 エンジニア認定基礎試験 練習問題 Day24:組み込み関数(abs, round, pow)
Python3 エンジニア認定基礎試験 練習問題 Day25:組み込み関数(sorted の応用と key 引数)
Python3 エンジニア認定基礎試験 練習問題 Day26:組み込み関数(enumerate, zip)
Python3 エンジニア認定基礎試験 練習問題 Day27:組み込み関数(map, filter, reduce)
Python3 エンジニア認定基礎試験 練習問題 Day28:組み込み関数(any, all)
Python3 エンジニア認定基礎試験 練習問題 Day29:組み込み関数(isinstance,issubclass)
Python3 エンジニア認定基礎試験 練習問題 Day30:組み込み関数(callable, eval)
Python3 エンジニア認定基礎試験 練習問題 Day31:組み込み関数(dir, help)
Python3 エンジニア認定基礎試験 練習問題 Day32:組み込み関数(id, hash)
Python3 エンジニア認定基礎試験 練習問題 Day33:組み込み関数(repr, format)
Python3 エンジニア認定基礎試験 練習問題 Day34:組み込み関数(globals, locals)
Python3 エンジニア認定基礎試験 練習問題 Day35:組み込み関数(vars, callable)
Python3 エンジニア認定基礎試験 練習問題 Day36:組み込み関数(reversed, slice)
Python3 エンジニア認定基礎試験 練習問題 Day37:組み込み関数(getattr, setattr, hasattr, delattr)
Python3 エンジニア認定基礎試験 練習問題 Day38:組み込み関数(eval, exec, compile)
Python3 エンジニア認定基礎試験 練習問題 Day39:組み込み関数(zip の応用・辞書との組み合わせ)
Python3 エンジニア認定基礎試験 練習問題 Day40:モジュールの基本(import と from の違い)
Python3 エンジニア認定基礎試験 練習問題 Day41:as(別名インポート)と import の仕組み
Python3 エンジニア認定基礎試験 練習問題 Day42:標準ライブラリ(math モジュールの基本)
Python3 エンジニア認定基礎試験 練習問題 Day43:標準ライブラリ(random モジュールの活用)
Python3 エンジニア認定基礎試験 練習問題 Day44:標準ライブラリ(datetime モジュールの使い方)
Python3 エンジニア認定基礎試験 練習問題 Day45:標準ライブラリ(os と sys)

■■■スポンサーリンク■■■