【独学Python入門⑭】論理演算子

論理演算子について今回はご説明します。論理演算子はブール演算子とも呼ばれます。言葉だけ聞くと難しそうですが、and, or, notの3つのことです。以下の表に機能をまとめます。

論理演算子 意味
 A and B AとBの両方が成立する
 A or B AかBの少なくとも片方が成立する
 not A Aは成立しない

その条件が成立するとTrueが返ってきます。これらを使用してテストをしてみましょう。

※andの使用例

height = 170
if height >= 170 and height <= 180:
    print("170以上180以下")

#右が切れたら左にスワイプしてください

※インタラクティブシェルの結果



※orの使用例

height = 168
if height <= 170 or height >= 180:
    print("170以下もしくは180以上")

#右が切れたら左にスワイプしてください

※インタラクティブシェルの結果



※notの使用例

height = 170
if not height >= 180:
    print("180以上ではない")

※インタラクティブシェルの結果

and, or, notの使い方を理解してもらえたでしょうか?これらを使用すると分岐の条件をすっきりとまとめることができます。

前回、if文の中にif文を書くネストが深いプログラムはとても見にくいとお伝えしました。おさらいするためにそのプログラムを再度取り上げます。

height = 170
weight = 60
if height >= 180:
  if weight >= 90:
    print("over weight")
  else:
    print("good")    
elif height >= 170:
  if weight >= 80:
    print("over weight")
  else:
    print("good") 
else:
  if weight >= 72:
    print("over weight")
  else:
    print("good") 

#右が切れたら左にスワイプしてください

※このプログラムはごちゃごちゃしていますが処理の内容を整理すると以下の通りです。

①heightが180以上+weightが90以上
②heightが170以上+weightが80以上
③heightが170未満+weightが72以上
④上記の①~③を満たすときに「over weight」を表示し、それ以外は「good」を表示する

①~③の分岐点で「+」に該当するのが論理演算子のandです。andを使用すると以下のようにプログラムを作り替えることができます。

height = 170
weight = 60
if height >= 180 and weight >= 90:
  print("over weight")   
elif height >= 170 and weight >= 80:
  print("over weight")
elif height < 170 and weight >= 72:
  print("over weight")
else:
  print("good") 

#右が切れたら左にスワイプしてください

プログラミングのスキルが高い人ほど他の方が理解しやすいすっきりしたプログラムを書くことができます。「if文の中にif文を書いてしまったけど、すっきりと書く方法はないかな?」と考える癖をつけるときっと上達が早くなります。

独学Python入門一覧に戻る