1. カテゴリを表示しない既定の形
  2. カテゴリを表示する形
  3. show_category が False ならカテゴリを渡しても出さない
  4. 0 円でも同じ形で組み立てる
  5. 4 桁の金額でも余分な区切りが入らない
コース一覧
Python入門:基礎文法編
キーワード引数

Python入門:基礎文法編

変数、条件分岐、ループ、関数、リスト・辞書、ファイル操作など Python の基礎文法を、ブラウザ上で毎レッスン実際にコードを書き、自分だけの「おこづかい帳アプリ」を育てながら学べる無料コースです。プログラミング完全未経験から始められ、環境構築や事前知識は一切不要です。約 18 時間 (1 日 30 分 × 37 日) で 74 レッスンを修了でき、修了後は入力・集計・ファイル保存まで備えたスクリプトを1から書けるようになります。

1
はじめての Python
01. printで表示15分
02. 文字列の連結15分
03. 四則演算15分
04. 実行順序15分
05. コメント15分
06. エラーを読んでみる15分
07. つくる:レシート表示15分
08. 第1章クイズ10分
2
変数とデータ型
01. 変数15分
02. typeで型を調べる15分
03. 数値への変換15分
04. 文字列への変換15分
05. boolとNone15分
06. f-string15分
07. 入力を受け取る15分
08. つくる:入力できるおこづかい帳15分
09. 第2章クイズ10分
3
演算子と式
01. 比較演算子15分
02. 論理演算子15分
03. in演算子15分
04. 剰余と切り捨て除算15分
05. 連鎖比較と優先順位15分
06. 三項演算子15分
07. つくる:予算チェック15分
08. 第3章クイズ10分
4
条件分岐
01. if文の基本15分
02. if / elif / else15分
03. 条件の組み合わせ15分
04. match文15分
05. 定番:FizzBuzz判定15分
06. デフォルト値とor15分
07. つくる:カテゴリ自動判定15分
08. 第4章クイズ10分
5
ループ
01. forで合計15分
02. whileで繰り返す15分
03. rangeとstep15分
04. breakとcontinue15分
05. enumerateで番号付け15分
06. zipで組み合わせ15分
07. 入れ子ループ15分
08. つくる:何件でも記録15分
09. 第5章クイズ10分
6
関数
01. 関数を定義する15分
02. 引数と戻り値15分
03. デフォルト引数15分
04. キーワード引数15分
05. 複数の戻り値15分
06. divmod15分
07. 変数のスコープ15分
08. lambda関数15分
09. つくる:関数に分割15分
10. 第6章クイズ10分
7
リストと辞書
01. リストの追加と削除15分
02. スライス15分
03. 辞書の基本15分
04. 辞書を走査15分
05. keyでソート15分
06. setで重複除去15分
07. リスト内包表記15分
08. タプルアンパック15分
09. つくる:カテゴリ別集計15分
10. 第7章クイズ10分
8
ファイルとエラー処理
01. ファイルを読み込む15分
02. ファイルに書き込む15分
03. withで安全に扱う15分
04. CSV形式で保存15分
05. try-exceptで備える15分
06. 例外の種類15分
07. つくる:保存機能15分
08. 第8章クイズ10分
9
総合制作
01. 全機能を統合しよう15分
02. 月間レポート機能15分
03. 自由拡張15分
04. 完成と次のステップ10分

キーワード引数

キーワード引数

True が何の True か分からない

引数が増えてくると、呼び出し側の見た目がこうなります。

Python

make_line("りんご", 120, "食費", True)

最後の True が何の True なのか、この行だけでは分かりません。関数の定義を見に行かないと読めないコードは、それだけであとの手間になります。

Python には、引数を 名前で指定して渡す 書き方があります。これをキーワード引数と呼びます。

Python

def title(text, line=False): if line: return "=== " + text + " ===" return text print(title("おこづかい帳", line=True))

line=True と書いてあるので、この True が何のためのものか一目で分かります。呼び出し側に 1 語足すだけで、定義を見に行かずに読めるようになります。

解説

コードは書く時間より読む時間のほうがずっと長いです。読んだだけで意味が分かる呼び出しを書けると、あとの自分が助かります。

名札を付ければ、順番は自由

位置引数は前から順に詰まるので順番を変えられませんが、名前で指定したものは名札が付いているので取り違えようがありません。

Python

def date_label(day, month=8, year=2026): return str(year) + "/" + str(month) + "/" + str(day) print(date_label(24, year=2025, month=3)) print(date_label(24, month=3, year=2025))

2 行とも 2025/3/24 になります。名前で渡すぶんには、書く順番は結果に影響しません。

引数名を打ち間違えると TypeError になり、unexpected keyword argument と出ます。定義側の綴りを見に行けばすぐ直せます。

名前なしの引数が先

混ぜて書くときは、名前なしの引数が必ず先です。date_label(day=24, 3) は SyntaxError になり、positional argument follows keyword argument と出ます。先に名札付きを置いてしまうと、そのあとの値がどこに入るべきか決められなくなるためです。

同じ引数へ位置とキーワードの両方から値を渡すのも TypeError です。date_label(24, 3, year=2025) なら問題ありませんが、date_label(24, 3, 2025, year=2024) は year に 2 回値が来てしまいます。どちらか片方にします。

やってみよう

関数 format_record(name, price, category="その他", show_category=False) を実装してください。品名 name と金額 price から "りんご 120円" の形の 1 行を作って return します。

show_category が True のときだけ、うしろに半角スペースと (食費) のようなカテゴリを足します。かっこは半角、スペースは半角 1 つです。category の既定値は "その他"、show_category の既定値は False です。

手元では format_record("りんご", 120) と format_record("りんご", 120, category="食費", show_category=True) の 2 通りを試して、名前で渡す読みやすさを確かめてみてください。

要件

  1. 関数名は format_record で、引数は name, price, category, show_category の 4 つ
  2. category の既定値は "その他"、show_category の既定値は False
  3. 基本の形は "品名 金額円" で、品名と金額の間は半角スペース 1 つ
  4. show_category が True のときだけ、うしろに半角スペースと半角かっこでカテゴリを足す

入出力例

format_record("りんご", 120) → "りんご 120円" format_record("りんご", 120, "食費", true) → "りんご 120円 (食費)" format_record("ノート", 200, "日用品", false) → "ノート 200円" format_record("おまけ", 0, "その他", true) → "おまけ 0円 (その他)" format_record("定期券", 10250, "交通費", true) → "定期券 10250円 (交通費)"

ヒント

金額は数値なので str(price) で文字列にしてから連結します

if show_category: と書けば True のときだけ通ります

カテゴリ部分は " (" + category + ")" の形でつなぎます

かっことスペースはすべて半角です

生田 陸人
監修生田 陸人
ゆめさくエンジニア / 現役ソフトウェアエンジニア監修者プロフィールを見る →
編集 ゆめさく編集部·公開 2026/08/05·更新 2026/08/26

関連レッスン

  • 複数の戻り値

    1 つの関数から 2 つの値をまとめて返す。合計と平均を返す total_and_average を作る

  • divmod

    divmod で商と余りを 1 回の呼び出しで得る。割り勘の結果を返す split_even を作る

  • 変数のスコープ

    ローカル変数とグローバル変数の違い。外を書き換えるバグを引数と戻り値の形に直す

  • lambda関数

    名前のない小さな関数を式で書く。sorted の key に渡して金額順に並べ替える

main.py
学習モード
エディタを読み込んでいます

メモ

キーワード引数

⌘S で保存