1ヶ月でWebデザイン・プログラミングスキルをオーダーメイドのカリキュラムで学べるスクール、それがWebCamp。

子供の想像力を伸ばしアイデアを形にする小学生向けプログラミング教室「プロスタキッズ」

【Python入門】ブール演算子(and・or・not)の使い方

【Python入門】
Pocket

Pythonにはさまざまな演算子が存在し、あらゆる計算や構文に使われています。その中でも、主にif文の条件式でよく使われる演算子としてブール演算子というものがあります。ブール演算子は論理演算子とも呼ばれており、if文の条件分岐において、複雑な条件式を記述する際に使用されます。

今回は、ブール演算子の使い方について説明します。

andについて

andは論理積とも呼ばれるブール演算子です。andの基本的な構文は以下の通りです。

andは左右に条件式をとり、両方の条件式の結果がTrue(真)の場合のみ、真を返します。どちらかが偽の場合は偽を返します。andを使うことで、複雑な条件のif文を短く記述することができます。

例えば、数字が格納されたリストの中から、100以上200未満の数字だけを取り出したいとします。andを使わない場合は、以下のようなif文になります。

実行結果

125
167

この例はリストも短く条件もそこまで複雑ではありませんが、それでもif文を2回使っています。条件が複雑になればなるほどif文が増えてしまい、コードが見づらくなってしまいます。そんな時にandを使うと、とても短く記述することができます。

実行結果

125
167

この場合、numberが100以上かつ200未満の時だけandがTrueを返し、if文の中身が実行されます。andを使うことで、if文が一つ減り、コードがスッキリしました。

orについて

orは論理和とも呼ばれるブール演算子です。orの基本的な構文は以下の通りです。

andは2つの条件式の両方がTrueの時だけ式全体がTrueになりましたが、orは2つの条件式のうちどちらか一方がTrueであれば、式全体がTrueになります。

さきほどの例を使うと、数字が100以下もしくは200以上のものを表示する、といった時に使われます。

実行結果

30
256
45
401

この例ではnumberが100未満、もしくはnumberが200以上のどちらか一方の式がTrueなら、式全体がTrueになるので、if文の中身が実行されます。

notについて

notは否定とも呼ばれるブール演算子です。notの基本的な構文は以下の通りです。

notは条件式がTrueの場合に、式全体がFalse(偽)になります。さきほどの例を使うと、偶数ではない数字だけを出力する、といった時に使われます。

実行結果

125
167
45
401

and、or、notを組み合わせる

ここまでand、or、notの3種類のブール演算子を紹介しましたが、これらの演算子を組み合わせてより複雑な条件式を作ることもできます。

例えば、300より小さい数字かつ3で割り切れないもの、という条件式は以下のようになります。

実行結果

256
125
167

ブール演算子の優先順位

Python言語の演算子には優先順位があります。例えば、+(和)と*(積)が同時にある場合は*が優先されます。

実行結果

13

ブール演算子にも、同じように優先順位があります。ブール演算子の中ではnotが一番優先順位が高く、and、orと続きます。そのため、ブール演算子を組み合わせて使う場合は優先順位に気をつけないと、思った通りに動いてくれないことがあります。

例えば、「100未満または200以上」でなおかつ「偶数」を取り出すとします。

実行結果

30
256
45

一見正しそうな条件式ですが、なぜか偶数ではない45も出力されてしまっています。これは、andのほうがorよりも優先順位が高いため、条件式が「200以上かつ偶数、または100未満の数字」に変わってしまうからです。この式を正しく実現させるためには()を使って優先順位を変更するようにしましょう。

実行結果

30
256

投稿者:プロスタ編集部

  • このエントリーをはてなブックマークに追加
  • follow us in feedly

初心者がプログラミングで挫折しない学習方法を無料動画で公開中。オンラインに特化したプログラミングスクール「TechAcademy(テックアカデミー)」が解説。

この記事が気に入ったら
いいね!しよう

プロスタの最新情報をお届けします

あわせて読みたい

関連記事

ページ上部へ戻る