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

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

Python超入門その31〜比較と真偽値をマスターしよう〜

Pocket

はじめに

複雑な条件分岐に困っていませんか?

プログラムでは各所でif文による条件分岐を記述します。
分岐の条件として式を記述し、その結果である真偽値により分岐させるわけです。

このため、真偽値の扱い方をしっかりとマスターしておかなければいけません。
これはwhile文によるループを記述する際にも重要になってきます。

この記事では、Python初心者の方向けに、比較と真偽値について説明していきます。

if文とwhile文のおさらい

まず、if文とwhile文のおさらいをしておきます。

if文は、次のように条件判定式を記述して分岐させるのでした。

例:

 

この例では、条件が真(True)の場合if文が実行され、それ以外の場合にelse文が実行されます。
さらにelif文を追加して、複数の条件判定を持たせることも可能です。

また、while文は条件判定式が真である(成り立っている)場合にループ処理を継続するのでした。
たとえば、次のような形です。

例:

 

ここでは、条件判定式に比較演算子(<)を使っています。

比較演算子の結果はbool値(真偽値)になるので、条件判定式に使えるのです。
それでは、比較演算子について詳しくみていきましょう。

比較演算子による真偽値

Pythonの比較演算子は6種類あります。
順番にみていきましょう。

まずは、等しいかどうかを判定する演算子からです。
次の例をみて下さい。

例:

 

この例では、「=(イコール)」と「!=(ノットイコール)」を使って、変数と等しい(または等しくない)か比較しています。結果がbool値で返ってきていることがおわかりになるでしょう。

これらの式は、そのままif文やwhile文に使用できます。

次は、大小を比較する演算子です。

例:

 

数学で習ったように、「>(大なり)」と「<(小なり)」を使って、数値の大小を比較できます。

注意しなければいけないのは、比較対象の数値自身は含まれない点です。
このため、最後の2行はどちらも偽(False)になります。

比較対象の数値自身を含めたい場合には、次のように「=」と組み合わせて使います。

例:

 

このように、「>=(大なりイコール)」と「<=(小なりイコール)」を使うと、比較対象の数値を含めることができ、どちらの場合でも真(True)になります。

2文字の演算子なので、文字の順序を間違えないように注意しましょう。

論理演算子による真偽値

比較演算子について説明してきましたが、複数の比較をしたい場合にはどうすればいいのでしょうか?

たとえば、数値が50より大きく、100より小さいといった条件です。
これは、次のようにif文をネストさせることで実現できます。

例:

 

やりたいことは実現できていますが、できればひとつのif文で書きたいですよね。

その場合は、次のように論理演算子を使います。

例:

 

これで複数の条件をひとつにすることができました。

論理演算子には「and」「or」「not」の3種類があり、andは両方の条件が真(True)を返す場合にのみ真、orはどちらかの条件が真を返す場合に真となります。それ以外はすべて偽(False)です。
また、notは真偽値を反転(TrueをFalse、FalseをTrueに)します。

組み合わせは多くはないので、次の例を参考に覚えておきましょう。

例:

 

真偽値の部分(True/False)については、任意の条件判定式に置き換えることができます。
また、次のように複数の論理演算子を組みわせることもできます。

例:

 

複数の論理演算子を組み合わせるときは、演算子の優先順位に注意しましょう。
not/and/orと優先順位が低くなっていくため、例のようにカッコ(())を使って優先順位を変更(先に計算)する必要があります。

まとめ

真偽値の扱い方はマスターできましたか?

真偽値を生み出すためには、主に比較演算子を使います。
または、bool値(真偽値)に対して論理演算子を使う場合もあるでしょう。

同じ条件であっても、何通りかの書き方ができます。
条件を工夫して、できるだけわかりやすい条件判定式にしましょう。

投稿者:プロスタ編集部

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

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

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

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

あわせて読みたい

関連記事

ページ上部へ戻る