「条件aが成り立つとともに、条件bも併せて成り立つ」のように、複数の条件式を組み合わせてif文を使いたい場合は「論理演算子」を使います。
Pythonの論理演算子には以下の3つがあります。
論理演算子 | 例 | 説明 |
---|---|---|
not | not a | 値がTrueの場合にはFalseを、Falseの場合にはTrueを返す |
and | a and b | aとbがTrueの場合はTrue、それ以外はFalseを返す |
or | a or b | aとbのどちらかがTrueの場合にはTrue、それ以外にはFalseを返す |
実行例は以下の通りです。
#not演算子を使うと結果が反転する
>>> not True
False
>>> not False
True
#and演算子を使うと全てがTrueの場合のみTrueを返す
>>> True and False
False
>>> True and True
True
#or演算子を使うとどちらかがTrueの場合にTrueを返す
>>> True or False
True
>>> True or True
True
例えば、国語、数学、英語の点数を入力して、全てが80点以上の場合のみ「合格です!」と表示し、それ以外だと「不合格です」と表示させるプログラムを記述してみます。
%vim if.py
kokugo = int(input("国語の点数を入力してください:"))
suugaku = int(input("数学の点数を入力してください:"))
eigo = int(input("英語の点数を入力してください:"))
if kokugo >= 80 and suugaku >= 80 and eigo >= 80:
print ("合格です!")
else:
print ("不合格です")
実行結果は以下の通りです。
% python if.py
国語の点数を入力してください:81
数学の点数を入力してください:90
英語の点数を入力してください:88
合格です!
% python if.py
国語の点数を入力してください:75
数学の点数を入力してください:89
英語の点数を入力してください:99
不合格です
論理演算子には優先順位があり、or演算子よりもand演算子の方が優先順位が高いです。
if kokugo >= 80 or suugaku >= 80 and eigo >= 80:
上記の場合、and演算子のほうが優先されて評価されるため、「数学と英語が80点以上」であるかが先に判断されます。「国語か数学が80点以上」であるかを先に判断させるためには以下のように「( )」で囲う必要があります。
if (kokugo >= 80 or suugaku >= 80) and eigo >= 80:
ネットワ-ク初心者のみなさま。
ネットワークの基礎知識を疎かにすることは
大変危険です!!
これを読めばネットワークの基礎が分かる!!
ネットワーク関連の仕事に就きたいとお考えの学生の方や、ネットワークに興味があって転職を考えている社会人の方、まずは登録してみてください。
もちろん無料です!!
↓メールマガジン購読はこちら↓