【Python if文の応用編】or・and・not演算子の使い方を理解しよう

if文で複数条件式の使い方を知りたい
if文で複数の論理演算子を合わせて使う方法が知りたい

if文はプログラミングで条件式を記述するときに使用しますが、場合によっては複数の条件式で分岐を行いたい場合もあります。たとえば、どちらかの条件式が真の場合は処理を分岐したり、条件式が全て正しい場合は処理を進めたい場合などは論理演算子を使用すると便利です。

今回はif文をもっと使いこなせるようになる為に便利な、if orやif and、if notの使い方について説明したいと思います。

この記事はこんな人のために書きました

  • if文の使い方の基礎を知りたい
  • orとand、not違いを知りたい
  • if or、if and、if notの使い方を知りたい
  • 複数の演算子を組み合わせて使う方法を知りたい

サンプルコードを交えながらやさしく解説していきますのでぜひ参考にしてください。

この記事のコードはPython 3.7で動作確認しました。

Pythonのif文の使い方

orやand、notの使い方の前に、if文の基本的な使い方について見ていきましょう。if文は条件分岐を扱う文になります。基本的な構文は以下のようになります。

if 条件式:
    条件式がTrueのときに行う処理

詳しい解説はこちらの記事で解説されているのでぜひご覧ください。

【Python if文の基本編】条件分岐を3つのステップで簡単理解
更新日 : 2020年5月15日

次にif文で複数条件式を指定できる論理演算子(or、and、not)について説明します。まずはそれぞれが持つ意味について、おさらいしておきましょう。

演算子真の条件
orどちらかが真の場合
andどちらも真の場合
not真であれば偽、偽であれば真

  • 「A or B」は AかBのどちらかがTrueであればTrue
  • 「A and B」は AとBの両方がTrueであればTrue
  • 「not A」は、AがTrueであればFalse、FalseであればTrue


論理演算子の真偽判定

これらの計算をif文を使って行っていきます。

Pythonのif or文の使い方

最初に、if or文の使い方について見ていきましょう。or演算子は、2つ以上の条件文のうち少なくとも一つが正しいという状況を表す時に使用します。

記述例:

A or B

なので、if or文の中に表記される処理は、提示した二つ以上の条件のどれかが成立すれば、実行される仕組みになっています。こちらのコードをご覧ください。

x = 100
if x == 500 or x > 600 or x < 200:
    print(True)

実行結果

True

上のコードは、変数xが500に等しいか、600より大きいか、200未満であるとTrueを出力します。この場合、xは100なので、3番目の条件に当てはまりました。等しいことを示す比較演算子は「=」ではなく「==」ということに、注意しましょう。

そんなorの使い方については、以下の記事でも詳しく解説しています!

Pythonのif and文の使い方

and演算子は、2つ以上の条件文のうちすべてが正しいという状況を表す時に使用します。

記述例:

A and B

なので、if and文の中に表記される処理は、提示した二つ以上の条件のどれもが成立すれば、実行される仕組みになっています。and演算子の真偽は先程の表の4列目にあります。こちらのコードをご覧ください。

x = 100
if x == 100 and x > 50 and x < 200:
    print(True)

実行結果

True

上のコードは、変数xが100に等しく、50より大きく、200未満である場合のみTrueを出力します。この場合、xは100なので、どの条件にも当てはまりました。if and文は、if or文と同様に、リストなどにでも活躍します。

list = [1,2,3,4,5,6,7]

if 1 and 8 in list:
    print(True)
else:
    print(False)

実行結果

False

上のコードは、listという名前のリストの中に1と8の両方があればTrueと出力されます。1は含まれていますが、8はlistの中にはありません。その為、Falseと表示されました。そんなandの使い方については、以下の記事でも詳しく解説しています!

Pythonのif not文の使い方

not演算子の真偽は先程の表の5,6列目にあります。if notは、提示した条件が成立しなければif文内に記述した処理が実行される仕組みになっています。

記述例:

not A

こちらのコードをご覧ください。

x = 100
if not x == 300:
    print(True)
else:
    print(False)

実行結果

True

こちらのコードは、変数xが300でなければTrueと出力します。この場合、xは100なのでTrueと表示されました。そんなnotの使い方については、以下の記事でも詳しく解説しています!

複数の演算子を組み合わせて使う方法

ifの条件式にorとandを組み合わせることが出来ます。こちらのコードをご覧ください。

list = [1,2,3,4,5,6,7,8]
 
for i in list:
    if i == 1 or i >=6 and i < 8:
        print(i)

実行結果

1
6
7

上のコードは、1に等しい要素か、6以上8以下の要素があればそれらを出力します。括弧が無いので読みにくいかもしれませんが、

(i == 1) or (i >= 6 and i < 8)

のように書き直すと優先順位が理解できますね。また、演算子を複数使用すると可読性が落ちてしまう問題もありますので、演算子ごとにif文を入れ子構造にするなど、読みやすさの工夫も必要になります。

このままPythonを学び続けて大丈夫?

なぜPythonを学ぶのか?

あなたがPythonを学ぶ理由は何でしょうか?

  • Pythonが人気だからとりあえず学んでいる
  • AIや機械学習の分野に興味があるから

Pythonは初心者向けの言語と言われています。その理由としてシンプルでわかりやすい構文や、実用的なライブラリが豊富なことが挙げられ、実際に学びやすい言語です。

しかし、もしあなたが機械学習に興味があって、とくに知識も無いまま学習を進めると、挫折する可能性が高いと言えます。

機械学習の分野はプログラミング以外にも、専門的な知識や数学の知識も必要になります。ただなんとなく学習していると早い段階でつまづきやすく、そのまま挫折してしまうなんてことも…。

そのため、挫折しないためには、

  • 最適な学習環境を用意する
  • 必要なライブラリ・ツールを導入する
  • わからないことを質問できるメンターを見つける

などが必要になります。

効率よく学びたいなら、無料体験レッスンがおすすめ

このままPythonを学び続けていいのかな…
まだまだ知りたいことがたくさんある!
もっと詳しくPythonについて知りたい!

といった悩みや願望を持っている方は、弊社「侍エンジニア」をご利用下さい。

侍エンジニアでは、

  • 現役エンジニアによるマンツーマンレッスン
  • キャリアアドバイザーによる転職・就職支援
  • 業界屈指のフリーランス・起業サポート

を受けることができます。

業界屈指のコンサルタントから、効率的な学習方法や仕事獲得術、今後のキャリアまでさまざまな疑問を相談してみませんか?遠方の方でもオンラインで受講できます!お気軽に受講下さい。

侍エンジニア
無料体験レッスンを受ける

まとめ

今回は論理演算子を用いたif文の使い方を解説しました。

  • if文の使い方
  • orとand、not違い
  • if or、if and、if notの使い方
  • 複数の演算子を併せて使う方法

覚えておきたいポイントは、

  • orはどれか一つが成立すればOK
  • andはすべてが成立すればOK
  • orやandやnotを組みわせてもOK

になります。では、みなさんもこの記事を通してif文についての知識を増やしていってくださいね。

「プログラミング、右も左もわからない…」という方にオススメ

cta_under_bnr

当プログラミングスクール「侍エンジニア」では、これまで6000人以上のエンジニアを輩出してきました。

その経験を通してプログラミング学習に成功する人は、「目的目標が明確でそれに合わせた学習プランがあること」「常に相談できる人がそばにいること」「自己解決能力が身につくこと」この3つが根付いている傾向を発見しました。

侍エンジニアは上記3つの成功ポイントを満たすようなサービス設計に磨きをかけております。

cta_under_bnr

「自分のスタイルや目的に合わせて学習を進めたいな」とお考えの方は、ぜひチェックしてみてください。

詳細はこちら

書いた人

Kotono

イタリア在住15年目の22歳です。イタリアの大学で情報科学&応用数学を学んでいます。主にJavaScriptやPythonについての記事を書いたりしています。

おすすめコンテンツ

まずはここから!初心者でも1から学べるプログラミング入門カリキュラム

転職成功で受講料0円!あなたもプログラミングを学んでエンジニアデビュー