Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【ITニュース解説】Operators and Conditionals

2026年10月22日に「Dev.to」が公開したITニュース「Operators and Conditionals」について初心者にもわかりやすく解説しています。

作成日: 更新日:

ITニュース概要

Pythonの演算子は、数値計算、値の比較、複数の条件判定に使う。if/elif/elseによる条件分岐は、特定の条件が真の場合に異なる処理を実行させ、プログラムに状況に応じた選択をさせる。これにより、動的な判断ができるコードを作成可能だ。

出典: Operators and Conditionals | Dev.to公開日:

ITニュース解説

システムエンジニアを目指す上で、プログラミングの基本を学ぶことは非常に重要だ。その中でも、プログラムが「賢く」振る舞うための土台となるのが「演算子」と「条件分岐」である。これらを理解することで、単に上から下へ処理を実行するだけのプログラムではなく、状況に応じて判断し、柔軟に対応できるプログラムを作成できるようになる。

まず「演算子」について説明する。演算子とは、Pythonなどのプログラミング言語において、データに対して特定の操作を行うよう指示するための記号だ。これには大きく分けて三つの種類がある。

一つ目は「算術演算子」だ。これは日常生活で使う数学の計算記号とほぼ同じで、数値を足したり、引いたり、掛けたり、割ったりする際に使う。例えば、「+」は足し算、「-」は引き算、「*」は掛け算、「/」は割り算を行う。プログラム内で x = 2、y = 3 といった数値を変数に格納し、sum_of_x_and_y = x + y のように記述することで、変数 x と y の合計を sum_of_x_and_y という別の変数に格納できる。これは、プログラムが即座に計算を実行し、その結果を利用できるようにするための基本的な道具となる。

二つ目は「比較演算子」だ。これは二つの値を比較し、その結果が「正しい(True)」か「間違っている(False)」かを判断する際に使う。例えば、「>」は左側の値が右側の値より大きい場合にTrueを返し、「<」は左側の値が右側の値より小さい場合にTrueを返す。「==」は二つの値が等しい場合にTrueを返す記号で、一つの「=」が変数を代入する際に使われるのに対し、二つの「==」は比較のために使われる点に注意が必要だ。「!=」は二つの値が等しくない場合にTrueを返す。例えば、age = 20 と設定された場合に age == 20 と比較するとTrueが返り、age == 25 と比較するとFalseが返る。このように、比較演算子はプログラムが特定の条件が満たされているかを確認するために不可欠な要素となる。

三つ目は「論理演算子」だ。これは複数の比較結果や条件を組み合わせて、より複雑な判断を行う際に使われる。and、or、not の三つが主な論理演算子だ。and は、複数の条件すべてがTrueの場合にのみ全体としてTrueを返す。例えば、「ユーザー名が正しい」かつ「パスワードが正しい」場合にのみログインを許可するといった状況で利用できる。or は、複数の条件のうち少なくとも一つがTrueであれば全体としてTrueを返す。例えば、「火曜日である」または「クーポンを持っている」場合に割引を適用するといった状況で利用できる。not は、真偽を反転させる。TrueをFalseに、FalseをTrueに変換する。これら論理演算子を使うことで、プログラムは複数の情報源を考慮に入れた上で、より洗練された意思決定を行うことができるようになる。

次に「条件分岐」について説明する。条件分岐は、プログラムが特定の条件に基づいて異なるコードのブロックを実行するための仕組みだ。これはプログラムに「もしこの状況なら、これをしなさい。そうでないなら、次の選択肢を考えなさい」と指示するようなものだ。Pythonでは、if、elif、else というキーワードを使ってこの分岐を表現する。

if は、条件分岐の最初の入り口となる。if の後に続く条件式がTrueと評価された場合、その if ブロックの直下にあるインデントされた(字下げされた)コードが実行される。

elif は「else if」の略で、最初の if の条件がFalseだった場合に、次に評価される代替の条件を指定するために使う。elif は複数設定することができ、それぞれの elif の後に異なる条件式を記述する。プログラムは上から順に条件を評価し、最初にTrueになった if または elif のブロックのコードを実行し、それ以降の elif や else はスキップする。この「最初にTrueになったブロックだけを実行する」という特性は非常に重要であり、条件の記述順序がプログラムの動作に影響を与えることを意味する。

else は、if や elif で指定されたすべての条件がFalseだった場合に実行される「最終手段」のブロックだ。else には条件式を記述する必要はなく、それまでのどの条件にも合致しなかった場合の処理を記述する。例えば、入力された点数に基づいて成績を判定するプログラムでは、if score >= 80 でA判定、elif score >= 70 でB判定、といったように続き、最終的に else でF判定といった処理を記述できる。ここでも、それぞれのブロックに属するコードは必ずインデントする必要があることを忘れてはならない。インデントによって、どのコードがどの条件に紐づいているかをPythonが判断するのだ。

これらの演算子と条件分岐がどのように組み合わされて実用的なプログラムを構築するのか、スマートサーモスタットの例で考えてみよう。この架空のプログラムは、室内の温度と在宅状況という二つの情報に基づいて、暖房や冷房を制御するシステムを模倣したものだ。

まず、プログラムは現在の室温と、家が空室かどうかを入力として受け取る。例えば current_temp = float(input("現在の室温を入力: ")) のように温度を受け取り、is_home_empty_input = input("家は空室ですか? (yes/no): ") のように空室かどうかを受け取る。ここで、is_home_empty_input の文字列を is_home_empty = is_home_empty_input.lower() == "yes" とすることで、入力されたテキストを「True」または「False」の論理値に変換する。この == 比較演算子によって、入力が "yes" と等しいかどうかを判断している。

次に、プログラムは以下のルールに従って判断を行う。

最初のルールは「家が空室であればエコモードを有効にする」だ。これは if is_home_empty: という形で表現される。もし is_home_empty がTrue(つまり家が空室)ならば、システムはエコモードで電源を落とす、というメッセージを表示する。

次のルールは「部屋が暑すぎるかつ誰かがいる場合」だ。これは elif current_temp >= 75 and not is_home_empty: と記述される。ここで >= という比較演算子が温度を評価し、and という論理演算子が「部屋が暑い」という条件と「家が空室ではない(つまり人がいる)」という二つの条件を組み合わせて、両方がTrueの場合にのみエアコンを作動させる。not is_home_empty は is_home_empty がFalse(人がいる)である場合にTrueとなる。

さらに次のルールは「部屋が寒すぎるかつ誰かがいる場合」だ。これは elif current_temp <= 64 and not is_home_empty: と記述される。先ほどと同様に、<= 比較演算子が温度を評価し、and 論理演算子が「部屋が寒い」という条件と「家が空室ではない」という二つの条件を組み合わせる。

そして最後の else: ブロックは、上記のどの条件にも当てはまらない場合、つまり「家は空室ではなく、温度も最適な範囲内にある」場合に「温度は最適です。システムは待機中です」というメッセージを表示する。

このように、スマートサーモスタットの例では、算術演算子(ここでは直接的な計算は少ないが、温度の比較に使用)、比較演算子、論理演算子、そしてif-elif-elseの条件分岐が密接に連携し、複雑な状況判断とそれに基づく適切な動作選択を可能にしている。演算子はデータの評価を行い、条件分岐はその評価結果に基づいてコードの実行パスを決定する。

これらの演算子と条件分岐を使いこなせるようになれば、あなたの書くPythonコードは単なる計算機から、入力されたデータを分析し、ユーザーの要求に応じてフィルターをかけ、その場の状況に柔軟に適応する「生きた」意思決定システムへと進化するだろう。これはシステムエンジニアとして問題を解決し、効率的なシステムを構築するための基礎中の基礎であり、プログラミング学習における最初の重要なステップとなる。

関連コンテンツ

関連IT用語