Pythonプログラミングにおける、論理演算子について、学んでいきましょう。
論理演算子とは
論理演算子は、条件と条件を組み合わせたいときに使える演算子です。
たとえば、「aはbです」と「cはdです」という条件があったとして、その両方が「はい(True)」とか、片方だけが「はい(True)」とか、そういった条件にたいして、「はい(True)」か「いいえ(False)」で答えてくれます。
論理演算子の一覧
こちらが論理演算子の一覧です。
演算子 | 説明 |
---|---|
and | 「a and b 」のとき、a もb もTrue ならばTrue |
or | 「a or b 」のとき、a とb のどちらか(または両方)がTrue ならばTrue |
not | 「not a 」のとき、a がFalse ならばTrue 、True ならばFalse |
それぞれの演算子を使うと、次のようになります。(それぞれの行の後ろのコメントが、答えてくれる結果です)
print(True and True) # True
print(False and True) # False
print(False and False) # False
print(True or True) # True
print(False or True) # True
print(False or False) # False
print(not True) # False
print(not False) # True
論理演算子を使ってみよう!
では、実際に論理演算子を使ってみましょう。
たとえば、ステージAとステージBの、両方のスコアが80点以上ならば合格、というゲームがあったとします。
passing_score = 80
a_score = 90
b_score = 85
is_passing = a_score >= passing_score and b_score >= passing_score
print(is_passing)
上のソースコードの5行目を見てください。
合格スコア(passing_score
)の80点と、ステージAとステージBのそれぞれのスコア(a_score
とb_score
)を比べて、合格かどうかをis_passing
に代入しています。
ここで、次のふたつの条件を、論理演算子「and
」を使って、組み合わせています。
- a_score >= passing_score
- b_score >= passing_score
ただ、さきほどのソースコードの書き方だと、組み合わせの切れ目が分かりにくいと思います。
そんなときは、このように括弧を使うと分かりやすくなります。
passing_score = 80
a_score = 90
b_score = 85
is_passing = (a_score >= passing_score) and (b_score >= passing_score)
print(is_passing)
「and
」は、条件のどちらもがTrue
のとき、「True
」と答えてくれます。
そして今回の場合は、ステージAも、ステージBも、合格スコア以上なので、「True
」になります。
実行結果
True