コース一覧
    Python演算子・制御フロー
    剰余と切り捨て除算

    Python演算子・制御フロー

    演算子と条件分岐の使い方を学び、値の比較と分岐を組み合わせた処理を実装できるようにします。

    1
    演算子と式
    01. 比較演算子15分
    02. 論理演算子15分
    03. in演算子15分
    04. 剰余と切り捨て除算15分
    05. 連鎖比較と優先順位15分
    06. 三項演算子15分
    07. つくる:予算チェック15分
    08. 第3章クイズ10分
    2
    条件分岐
    01. if文の基本15分
    02. if / elif / else15分
    03. 条件の組み合わせ15分
    04. match文15分
    05. 定番:FizzBuzz判定15分
    06. デフォルト値とor15分
    07. つくる:カテゴリ自動判定15分
    08. 第4章クイズ10分

    剰余と切り捨て除算

    % と // は対になっている

    1000 円を 3 人で割ると 333.3333333333333 円

    飲み会の割り勘を計算させてみます。

    Python

    print(1000 / 3)

    333.3333333333333 と出ます。お金にこの答えは使えません。ほしいのは「1 人 333 円ずつ出して、1 円あまる」という形です。

    そもそも / は、割り切れる場合でも必ず小数を返します。10 / 2 ですら 5.0 です。整数がほしい場面では、別の記号を使います。

    商の // と余りの %

    // は割り算の答えの小数部分を切り捨てて整数だけを返し、% は割ったときの余りを返します。

    Python

    print(1000 // 3)
    print(1000 % 3)

    333 と 1 です。333 を 3 倍すると 999 なので、1000 との差の 1 が確かにあまります。この 2 つは常にセットで、割られる数は「商かける割る数、足す余り」に戻ります。

    % は百分率とは何の関係もありません。読み方は「モジュロ」または「あまり」です。50 % 100 は「50 パーセント」ではなく、50 を 100 で割った余りの 50 になります。

    割り切れるかを調べる

    % のいちばん有名な使い道が「割り切れるか」の判定です。余りが 0 なら割り切れています。

    Python

    print(10 % 2 == 0)
    print(7 % 2 == 0)

    True と False で、偶数と奇数を分けられました。% 3 にすれば 3 の倍数が見つかります。

    なお // も % も、0 で割ると ZeroDivisionError になります。人数のように 0 になりうる値で割るときは注意してください。エラーの名前は読めば意味が分かるように付いていて、これも「ゼロで割った」とそのまま書いてあります。

    やってみよう

    関数 split_bill を実装してください。引数は合計金額 total と人数 people の 2 つで、割り勘の結果を下記の形の文字列で返します。

    Python

    1人 333円 あまり 1円

    1人 のあとに 1 人あたりの金額、円 あまり のあとに余りの金額、最後に 円 です。半角スペースの位置に気をつけてください。

    split_bill(1000, 3) なら上のとおり、split_bill(3000, 3) なら 1人 1000円 あまり 0円 です。割り切れるときも あまり 0円 と書き出します。

    1 人あたりの金額に / を使うと小数になってしまうので、そこは切り捨てのほうを使います。f-string の {} の中には計算式をそのまま書けるので、いったん変数に入れてから埋めても、その場で計算しても構いません。読みやすいほうを選んでください。

    要件

    1. 関数名は split_bill で、引数は total と people の2つ
    2. 1人あたりの金額は // で求める(/ を使うと小数になる)
    3. 端数は % で求め、割り切れるときも あまり 0円 と表示する
    4. 戻り値は "1人 333円 あまり 1円" と同じ形の文字列にする

    ヒント

    f"1人 {total // people}円 あまり {total % people}円" の1行で書けます

    f-string の { } の中には total // people のような式をそのまま書けます

    / は小数を返します。整数がほしいので // を使ってください

    半角スペースは 1人 のあとと 円 のあとの2か所です

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

    関連レッスン

    • 連鎖比較と優先順位

      0 <= price <= budget の連鎖比較と、演算子が計算される順番を整理する

    • 三項演算子

      A if 条件 else B で値を2択に切り替え、予算内かオーバーかのラベルを返す

    • つくる:予算チェック

      第3章の総仕上げ。合計と予算を比べて判定つきの3行を返す check_budget を作る

    • 第3章クイズ

      比較演算子、論理演算子、in、剰余、連鎖比較、三項演算子の理解を5問で確認する

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

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

    • セット重複を持たない順序なし集合
    • 関数処理に名前を付けて再利用できる単位
    • 引数位置引数=順番で渡す。
    • f-stringf"..." で変数を埋め込む文字列記法
    • 変数データに名前をつけて参照する仕組み
    • 戻り値呼び出し元への返答を表す点線矢印
    main.py
    エディタを読み込んでいます

    メモ

    剰余と切り捨て除算

    ⌘S で保存