この記事のポイント
論理演算子を使って条件分岐をできるようになります。
はじめに
前回の記事で「比較演算子」を使っての条件分岐を使えるようになりました。
今回は「論理演算子」を使って、条件分岐をできるようにします。
論理演算子を使えるようになると、さらにプログラミングの幅が広がります!
前回の記事
前回は「比較演算子」を説明しました。
Pythonをもっとも簡単に始めることができる「PyWeb」は以下リンクから始めることができます。
論理演算子の種類
Pythonでの論理演算子の種類は3つです。以下表にまとめます。
論理演算子 | 内容 |
---|---|
A and B | A も B も True であれば True |
A or B | A または B が True であれば True |
not A | A が False であれば True |
種類が少ないのでサクッと使いこなせるようになりますね。
論理演算子を使ってみる。
では実際に論理演算子を使ってみましょう。
and演算子
and演算子を使ったサンプルコードは以下のようになります。
if True and True:
print(True)
else:
print(False)
if True and False:
print(True)
else:
print(False)
実際にPyWebで動かしてみましょう。
1つ目においては、TrueとTrueでは、両方とも真なのでTrueが出力されます。
対して、2つ目においては、TrueとFalseでは、片方がFalseなので、Falseが出力されます。
or演算子
or演算子を使ったサンプルコードは以下のようになります。
if True or False:
print(True)
else:
print(False)
if False or False:
print(True)
else:
print(False)
実際にPyWebで動かしてみましょう。
1つ目においては、TrueとFalseでは、片方が真なのでTrueが出力されます。
対して、2つ目においては、FalseとFalseでは、両方がFalseなので、Falseが出力されます。
not
not演算子を使ったサンプルコードは以下のようになります。
if not False:
print(True)
else:
print(False)
if not True:
print(True)
else:
print(False)
実際にPyWebで動かしてみましょう。
1つ目においては、FalseではないのがTrueなので、Trueが出力されます。
対して、2つ目においては、TrueでないのがFalseなので、Falseが出力されます。
論理演算子と比較演算子を組み合わて使ってみる。
正直に言いますと、論理演算子単体で使用することはほぼありません。では、どういったときに使用するかと言うと、論理演算子は比較演算子と組み合わせて使うことで威力を発揮します。論理演算子は2つ以上の比較演算子による条件式を評価し、条件に合致するとtrueを返します。
例1 2つの一致比較のandをとる
例えば、天気が晴れで、休日であれば、旅行にでかけて、それ以外は家にいると判断するプログラムを作る場合は、以下のようになります。
todayWeather = "晴れ"
today = "休日"
if todayWeather == "晴れ" and today == "休日":
print("旅行にでかける")
else:
print("家にいる")
PyWebで動かしてみましょう。
変数todayWeatherを”雨”という文字列に変えてみましょう。休日ではありますが、天気が雨だと家にいるという結果になりますね。
このように論理演算子と比較演算子を組み合わせると、複雑判定も自動化できるようになります。
例2 2つの大小比較のandをとる
例えば、製造された部品の大きさが10cmから15cmの間であれば合格という判別プログラムをつくりたい場合は以下のようなプログラムになります。
sizeProduct = 12
if sizeProduct >= 10 and sizeProduct <= 15:
print("合格")
else:
print("不合格")
PyWebで実際にプログラムの動きを確かめてみましょう。製品の大きさが12cmなので合格となりますね。
sizeProductが100cmの場合で試してみましょう。ちゃんと不合格と判別してくれますね。
【小ネタ】真理値表
真理値表を使うと、論理演算子の条件と結果がわかりやすくなります。
試しにandの真理値表を書いてみます。以下のようになります。
結果 | A | ||
True | False | ||
B | True | True | False |
False | False | False |
orの真理値表を書いてみます。以下のようになります。
結果 | A | ||
True | False | ||
B | True | True | True |
False | True | False |
実際の開発現場においても、プログラムの動きを表す仕様書ではこの真理値表を使って条件にヌケモレがなくなるようにします。
コメント