【保存版】Pythonのor演算子|基礎から応用までコードで解説

※本サイトにはプロモーション・広告が含まれています。

(最終更新日:2023年7月)

✔当記事は以下のような方に向けて書かれています

「Pythonのor演算子タに何の機能があるのだろう?」
「Pythonのor演算子の使い方を学びたい」
「Pythonのor演算子の実際の使用例を確認したい」

✔当記事を通じてお伝えすること

  • Pythonのor演算子の基礎知識
  • Pythonのor演算子の使用方法とそれらの応用例
  • or演算子の使用例

当記事では、Pythonのor演算子の基本的な機能から、より高度な応用例まで、具体例を参照しながら丁寧に解説しています。

最後までお付き合いいただけますと幸いです。

筆者プロフィール

筆者プロフィールアイコン

【現職】プロダクトマネージャー

【副業】ブログ(月間17万PV)/YouTube/Web・アプリ制作

「プログラミング × ライティング × 営業」の経験を活かし、30後半からのIT系職へシフト。当サイトでは、実際に手を動かせるWebアプリの開発を通じて、プログラミングはもちろん、IT職に必要な情報を提供していきます。

【当ブログで紹介しているサイト】

当サイトチュートリアルで作成したデモ版日報アプリ

Django × Reactで開発したツール系Webアプリ

✔人に見せても恥ずかしくないコードを書こう

「リーダブルコード」は、わかりやすく良いコードの定義を教えてくれる本です。

  • 見るからにきれいなコードの書き方
  • コードの分割方法
  • 変数や関数の命名規則

エンジニアのスタンダートとすべき基準を一から解説しています。

何回も読むのに値する本なので、ぜひ手にとって読んでみてください。

Pythonのorを理解するための前提知識

こちらでは、Pythonの論理演算子について詳しく解説します。

or演算子を理解するために必須の知識です。

  • Pythonの注目度とその理由
  • 初心者フレンドリーなPythonの利点
  • ブール値とは?
  • Pythonでの論理演算子の活用

Pythonの注目度とその理由

Pythonは、シンプルな構文と強力なライブラリを持つ、高度なプログラミング言語です。

その親しみやすさと能力の高さから、科学計算、ウェブ開発、データ分析など、広範な領域で使用されています。

これにより、Pythonは技術者だけでなく、科学者や研究者にも非常に人気があります。

初心者フレンドリーなPythonの利点

Pythonは非常に初心者に優しい言語であり、そのシンプルな文法と直感的なコード設計は、プログラミングの初学者が学びやすい環境を提供します。

また、Pythonの豊富なライブラリとコミュニティの支援により、初心者でも容易に本格的なプロジェクトを開始することが可能です。

ブール値とは?

ブール値とは、真または偽を表す値のこと。

これらはそれぞれ「True」と「False」と表されます。

ブール値は、以下のような場面で重要な役割を果たすものです。

  • 条件文
  • ループ
  • 複雑な論理演算

Pythonでの論理演算子の活用

Pythonには、ブール値を操作するための三つの論理演算子が存在します。

  • “and”
  • “or”
  • “not”

これらの演算子を用いることで、単純または複雑な条件文を作成し、コードの流れを制御することが可能になります。

“or” 演算子の基本

こちらでは、”or”という論理演算子について深掘りします。

まずはその定義と作用原理から見ていき、その後、実際のプログラミングでの”or”運算子の利用方法を理解していきましょう。

  • “or”演算子の定義と作用原理
  • 実際のプログラミングでの”or”演算子の活用法

“or”演算子の定義と作用原理

“or”演算子は、少なくとも一方の条件が真であれば真を返す、Pythonの論理演算子のひとつです。

“or”を挟んだ二つの述語のうち、一方または両方がTrueであれば、全体の結果はTrueになります。

両方ともFalseの場合に限り、”or”演算子の結果はFalseになるということです。

# 両方の条件がTrueの場合
print(True or True)   # 出力: True

# 一方の条件がTrueの場合
print(False or True)  # 出力: True
print(True or False)  # 出力: True

# 両方の条件がFalseの場合
print(False or False) # 出力: False

実際のプログラミングでの”or”演算子の活用法

“or”演算子は、さまざまな条件判断において使用されます。

場面コード例
条件式が複数あり、いずれかがTrueの場合に処理を実行するif condition1 or condition2 or condition3:
    # 処理を実行するコード
条件式が複数あり、いずれかがTrueの場合に特定の値を返すresult = value1 or value2 or value3
デフォルト値の指定で、変数がNoneや空の場合に代替値を使用するname = input_name or "Unknown"
条件式の結果に基づいて処理の優先順位を設定するpriority = high_priority or default_priority
複数の条件のうち最初に評価された真の値を取得するresult = condition1 or condition2 or condition3

Pythonのその他の論理演算子

こちらでは、”and”と”not”というPythonの他の二つの論理演算子について解説します。

それぞれの定義と使用法を詳しく見ていきましょう。

  • “and”演算子の使い方
  • “not”演算子の解説

“and”演算子の使い方

“and”演算子は、全ての条件が真であれば真を返すもの。

“and”を挟んだ二つの述語が全てTrueであれば、全体の結果はTrueです。

一方どちらか一つでもFalseが含まれている場合、”and”演算子の結果はFalseになります。

“not”運算子の解説

“not”運算子は、ある条件の反対を示します

つまり、もし条件がTrueであれば、”not”演算子はそれをFalseに変えます。

逆に、もし条件がFalseであれば、”not”演算子は、Trueを返すのです。

複数の条件を組み合わせた演算

こちらでは、複数の条件を組み合わせた演算について説明します。

複数条件の設定は、正しく理解していないと、間違った動作の原因となってしまうでしょう。

  • “and”/”or”演算子を用いた複数の条件
  • 3つ以上の条件の組み合わせ
  • 演算子の優先順位とその参照方法

“and”/”or”演算子を用いた複数の条件

“and”と”or”を組み合わせて使うことで、より複雑な条件を作り出すことが可能です。

例えば、ある値が特定の範囲に入っているかどうかを判断する際には”and”を、複数の条件のうち一つでも満たせばよい場合には”or”を使います。

# 数値が特定の範囲に入っているかどうかを判断する場合
x = 10

# xが範囲[1, 20]に入っているかどうかを判断する
if x >= 1 and x <= 20:
    print("xは範囲内です")
else:
    print("xは範囲外です")

#複数の条件のうちいずれか一つでも満たせばよい場合
x = 10

# xが0以下または100以上の範囲にある場合に処理を実行する
if x <= 0 or x >= 100:
    print("xは範囲外です")
else:
    print("xは範囲内です")

3つ以上の条件の組み合わせの解説

複数の”and”と”or”を組み合わせることで、3つ以上の条件を一度に評価することも可能です。

# 数値が0より大きく、10より小さい、または20より大きい場合を評価する

x = 15

# xが0より大きくかつ10より小さい、または20より大きい場合に処理を実行する
if (x > 0 and x < 10) or x > 20:
    print("条件を満たしています")
else:
    print("条件を満たしていません")

演算子の優先順位とその参照方法

複数の論理演算子を組み合わせて使用する際には、その評価の順序、すなわち演算子の優先順位を理解することが重要です。

Pythonでは、以下の順で優先順位が高くなります。

“or” < “and” < “not”

同じ行内に複数の論理演算子がある場合、”not”が最初に評価され、次に”and”が評価され、最後に”or”が評価されます。

括弧を使用することで評価の順序を明示的に制御することも可能です。

“or”演算子の適用と注意点

こちらでは、”or”演算子の適用例と注意点を説明します。

必ず目を通し、余計なトラブルを回避しましょう。

  • 短絡評価とその影響
  • よくある間違いとその解決策
  • “or”運算子不足時のヒント

短絡評価とその影響

Pythonの”or”演算子は、短絡評価(short-circuit evaluation)という特性を持っています。

短絡評価とは、“or”演算子の左側が真である場合、右側の評価はスキップされること。

これは、”or”演算子の性質上、一方の値が真であれば全体の結果が真となるため、評価の効率を上げるための仕組みです。

ただしこの性質により、右側の式に副作用(例えば関数呼び出し)が含まれている場合、その副作用が発生しないという予期しない結果を招くことがあります。

よくある間違いとその解決策

Pythonの”or”演算子を用いた条件式でよく見られる間違いのひとつは、数値や文字列を直接比較する際の誤用です。

x = 2

# xが1である、または2が真であると判断される(常に真となる)
if x == 1 or 2:
    print("条件を満たしています")
else:
    print("条件を満たしていません")

意図した動作とならない場合は以下を参考に書き換えましょう。

x = 2

# xが1である、またはxが2であると判断される
if x == 1 or x == 2:
    print("条件を満たしています")
else:
    print("条件を満たしていません")

“or”演算子不足時のヒント

“or”演算子だけでは表現できない複雑な論理条件が出てきたときには、条件式を変数に分割して考えることをおすすめします。

なぜなら変数に分割することで、コードは読みやすく、デバッグも容易になるからです。

例えば、3つの条件のいずれかが真であることを確認したい場合、各条件を別々のブール値の変数に割り当て、それらを”or”演算子で結びつけるという方法があります。

# 条件を変数に分割して考える
condition1 = (x > 0)
condition2 = (y < 10)
condition3 = (z == "hello")

# 3つの条件のいずれかが真であるかを確認する
if condition1 or condition2 or condition3:
    print("少なくとも1つの条件が真です")
else:
    print("どの条件も真ではありません")

まとめ

当記事では、or演算子について以下のことをご説明してきました。

  • Pythonの”or”演算子は、複数の条件のいずれかが真である場合に真となる論理演算をおこなうもの
  • or演算子により、複雑な条件判定をシンプルに記述できる
  • or演算子の短絡評価を理解し、適切に活用すれば、コードの効率を向上させられる

ただしその使用には注意が必要で、特に副作用を伴う評価式のスキップや直接比較の誤用などが挙げられます。

Pythonの論理演算子を理解し、適切に活用することは、Pythonのプログラミング能力を向上させるための重要なステップといえます。

さらにPythonを活用するためには、制御フロー(if文、for文、while文など)、関数、クラスなどの理解を深めることも重要です。

また、Pythonの標準ライブラリや外部ライブラリを探索し、その強力な機能を活用してください。

タイトルとURLをコピーしました