← クエスト一覧

クエスト36:**kwargsを使おう

スライド 1 / 6
コーデ
💻 コード例
実行結果
← クエスト一覧
🐍 Python / Quest 36 / 85

クエスト36:**kwargsを使おう

発展 +10 XP
🏠
今回の課題
show_info(name='たろう', age=12) を受け取って、「name: たろう」「age: 12」と1行ずつ表示しよう。
📖 解説を見る
📦 **kwargs って何?

引数に ** をつけると、名前つきの引数を好きなだけ受け取れます。受け取った内容は辞書にまとまります。

✏️ 書き方:
def make_user(**kwargs):
    print(kwargs)

make_user(id=1, admin=True)
 → {'id': 1, 'admin': True}
このように、名前つきで渡したものが丸ごと辞書になって届きます。

📋 作るもの:
・関数名は show_info、名前つきの引数をいくつでも受け取れるようにする
・受け取ったものを1組ずつ取り出して、キー: 値 の形で1行ずつ表示する
show_info(name='たろう', age=12) なら「name: たろう」「age: 12」の2行

💡 どこで使う?

設定オプションが多くて、どれを渡すか呼ぶ側で自由に決めたい関数で使います(*args=Q38 の名前つき版)。受け取った kwargs をそのまま別の関数に **kwargs で横流しする、という中継にもよく使われます。

⚠️ ポイント:
kwargs は辞書として受け取る
.items() でキーと値を取り出せる(Q43)
ヒントを見る
引数名の前に ** を付けると辞書として受け取れるよ。辞書からキーと値を1組ずつ取り出すには .items() を for で回そう。
期待する出力
name: たろう
age: 12
📄 見本
「答えを見る」を押すと、お手本のコードが出ます。クリックでコピーできます。
💻 コードエディタ
実行すると結果がここに表示されます
正解!見本と同じになりました。
次へ →
🏠 ホームへ

れんしゅうもんだい

☑ 0 / 3 正解 レッスンに戻る

全問正解でクエストクリア!

未挑戦

問題 1: **kwargs を使って全引数の合計を返す sum_all(**nums) を作り、sum_all(a=1, b=2, c=3) を表示しよう!

実行結果
実行できたよ!
もう一度チャレンジ!
📄 見本の出力
6
未挑戦

問題 2: **kwargs のキーと値を「key=value」の形で1行ずつ表示しよう!(name='Alice', score=100)

実行結果
実行できたよ!
もう一度チャレンジ!
📄 見本の出力
name=Alice score=100
未挑戦

問題 3: *args と **kwargs を組み合わせた info() で「Python version=3 year=1991」と表示しよう!

実行結果
実行できたよ!
もう一度チャレンジ!
📄 見本の出力
Python version=3 year=1991
コピーしました!