コース一覧
    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分

    連鎖比較と優先順位

    連鎖比較は and の形

    同じ変数を 2 回書く範囲チェック

    「0 円以上、かつ予算以下」のような範囲の判定は、ここまでの道具だと同じ変数を 2 回書くことになります。長くはありませんが、数学で 0 ≦ x ≦ 10 と書くのに比べると回りくどい形です。

    Python には、数学の式そのままの見た目で書ける記法があります。連鎖比較 です。

    Python

    people = 4
    print(1 <= people <= 8)

    True と出ます。これは 1 <= people and people <= 8 と同じ意味に展開されるので、両方を満たしたときだけ True です。and に展開されるといっても真ん中の値は 1 回しか評価されないので、そこに関数呼び出しを置いても二重には呼ばれません。

    不等号の向きはそろえてください。1 <= people >= 8 と書いても文法としては通りますが、意味の分からない条件になります。3 つ以上つなぐこともできますが、長くなるほど読みにくくなるので、2 段までにとどめるのが実用的です。

    どれから計算されるか

    式の中に複数の演算子が混ざったとき、計算される順番は 3 段に分かれています。まず算術の + - * /、次に比較の < や == や in、最後に not and or です。かっこがあれば、その中が何より先です。

    Python

    count = 12
    print(count * 2 > 30 and count > 0)

    count * 2 の 24 が先に出て、24 > 30 は False、count > 0 は True、False and True で全体が False。落ち着いて上から段を降りれば読めます。

    迷ったらかっこ

    順番は覚えるに越したことはありませんが、実務では 迷ったらかっこを付ける のが正解です。かっこは実行速度をほとんど変えず、読み手の負担だけを減らします。

    とくに and と or が混ざるときは要注意です。and のほうが強いので、A or B and C は A or (B and C) になります。(A or B) and C のつもりで書くと、結果が変わったまま気づけません。

    解説

    「動くから正しい」と「読めるから正しい」は別の話です。3 か月後の自分が読める式を書いてください。

    やってみよう

    関数 in_range を実装してください。引数は price と budget の 2 つで、price が 0 以上かつ budget 以下のとき True、そうでないとき False を返します。

    in_range(500, 3000) は True、in_range(3001, 3000) は False、in_range(-100, 3000) も False です。下限の 0 と上限の budget は、どちらも範囲に含めます。in_range(0, 3000) も in_range(3000, 3000) も True になるということです。

    連鎖比較で書いても、and を使った形で書いても正解です。まずは連鎖比較の書き味を試してみてください。マイナスの金額を弾けるので、この形はそのまま入力チェックに使えます。

    要件

    1. 関数名は in_range で、引数は price と budget の2つ
    2. price が 0 以上かつ budget 以下のとき True を返す
    3. 下限の 0 と上限の budget はどちらも範囲に含める
    4. 0 <= price <= budget の連鎖比較で書く(and を使った形でも可)

    ヒント

    return 0 <= price <= budget の1行で書けます

    連鎖比較は 0 <= price and price <= budget と同じ意味に展開されます

    「以上」「以下」なので < ではなく <= を使います

    不等号の向きは <= でそろえてください。逆向きを混ぜると意味が壊れます

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

    関連レッスン

    • 三項演算子

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

    • つくる:予算チェック

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

    • 第3章クイズ

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

    • if文の基本

      if で条件が成り立つときだけ処理を実行する書き方と、インデントの意味を学ぶ

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

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

    • 変数データに名前をつけて参照する仕組み
    • 評価出力品質を数値化して継続改善する活動
    • 関数処理に名前を付けて再利用できる単位
    • 演算子//は切り捨て除算(7 // 2 = 3)。
    • 引数位置引数=順番で渡す。
    main.py
    エディタを読み込んでいます

    メモ

    連鎖比較と優先順位

    ⌘S で保存