1. 予算3000から120と80を引くと2800
  2. 予算5000から1200と800を引くと3000
  3. 支出が0円なら予算がそのまま残る
  4. 使いすぎたときはマイナスの数値を返す
  5. ちょうど使い切ると0になる
コース一覧
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分

四則演算

演算子の優先順位

残りいくら使えるのか、毎回暗算したくない

おこづかい帳の心臓部は計算です。予算のうちいくらか使ったら、残りはいくらか。この引き算を Python にやらせます。

Python は電卓としてそのまま使えます。数値はクオートで囲みません。囲むと文字列になり、計算ではなく連結になってしまいます。

Python

print(1000 - 350 - 200)

450 と出ます。- は左から順に処理されるので、まず 1000 - 350 が 650 になり、そこから 200 を引いています。

記号は算数と少し違う

足し算 + と引き算 - はそのままですが、掛け算と割り算は見慣れない形をしています。

Python

print(10 + 3) print(10 - 3) print(10 * 3)

掛け算は × ではなく半角のアスタリスク *、割り算は ÷ ではなくスラッシュ / を使います。10 x 3 と書くと文法エラーです。記号はすべて半角で、日本語入力のまま打つと全角の記号が混ざってそこで止まります。

掛け算が先に済んでしまう

計算には優先順位があります。* と / が先、+ と - があとで、算数と同じ規則です。

Python

print(100 + 20 * 3) print((100 + 20) * 3)

上は 20 * 3 が先に済むので 160、下はかっこの中が先なので 360 です。120 * 3 にはなりません。この手の取り違えはエラーが出ないまま答えだけがずれるので、いちばん見つけにくい部類に入ります。意図した順番があるなら、かっこで書いてしまうのが安全です。

やってみよう

関数 remaining を実装してください。引数は予算 budget、1 件目の支出 price1、2 件目の支出 price2 の 3 つで、予算から 2 件を引いた残額を返します。

remaining(3000, 120, 80) なら 2800 です。remaining(1000, 600, 600) なら -200 になりますが、これはエラーではなく正しい計算結果なので、マイナスのまま返してください。

戻り値は数値です。式をクオートで囲んで返すと、計算されずにその文字がそのまま返ってしまいます。また budget - (price1 - price2) のようにかっこを付けると引く向きが変わってしまうので、今回はかっこは要りません。

要件

  1. 関数名は remaining で、引数は budget、price1、price2 の3つ
  2. budget から price1 と price2 を引いた結果を return する
  3. 戻り値は文字列ではなく数値にする
  4. 残額がマイナスになってもそのまま返す

入出力例

remaining(3000, 120, 80) → 2800 remaining(5000, 1200, 800) → 3000 remaining(3000, 0, 0) → 3000 remaining(1000, 600, 600) → -200 remaining(500, 200, 300) → 0

ヒント

引き算の記号は半角のハイフン - です

budget - price1 - price2 と続けて書けば左から順に計算されます

計算式はクオートで囲まないでください。囲むと文字列になります

マイナスになる場合の特別な処理は必要ありません

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

関連レッスン

  • 実行順序

    コードが上から順に実行されることを、レシート3行を組み立てながら確認する

  • コメント

    # で意図をコードに残す方法と、コメントが実行されないことを確認する

  • エラーを読んでみる

    SyntaxError と NameError の読み方を覚え、壊れたコードを自分で直す

  • つくる:レシート表示

    第1章の総仕上げ。4行の固定レシートを返す make_receipt を作る

このレッスンに出てくる用語

意味があいまいなまま進んだ語は、ここから読み直せます。

  • 処理計算や代入を表す長方形
  • 関数処理に名前を付けて再利用できる単位
  • 引数位置引数=順番で渡す。
  • 戻り値呼び出し元への返答を表す点線矢印
main.py
学習モード
エディタを読み込んでいます

メモ

四則演算

⌘S で保存