条件分岐
ここでは、Python で条件分岐をする方法について学んでいきます。
論理値
Python では、文字列や数字以外にも論理値という真か偽かを表す値があります。真は True
、偽は False
と表せ、これは変数などにも代入できます。
下のプログラムでは、True
と False
を表示しています。"True"
、"False"
のようにダブルクォーテーション( "
)がついていないことに気をつけましょう。
比較演算子
Python では、次のように比較演算子を用いて真偽を判定することができます。次のプログラムでは、age > 20
が偽なので、論理値である False
が返されています。
他にも様々な比較演算子があります。なぜか !=
の存在を忘れる人が続出するので、要注意!
比較演算子 | 説明 | 例 |
---|---|---|
== | 等しい | |
!= | 等しくない | |
< | 小なり | |
<= | 以下 | |
> | 大なり | |
>= | 以上 |
他の多くのプログラミング言語はできませんが、実は、Python では数学のように複数の比較演算子を使った条件も書くことができます。
論理演算子
論理値に対して、論理演算子を使ってさらに複雑な計算をすることができます。
このプログラムは、>=
一つを使って書き換えた次と同じです。
他にも様々な論理演算子があります。
論理演算子 | 説明 | 例 |
---|---|---|
not | 否定 | |
and | かつ | |
or | または |
条件分岐
if
年齢に応じて、飲酒可能な年齢かを判定するプログラムを作りましょう。しかし、今までに学習した内容ではこのようなプログラムを作ることはできそうにありません。このような処理をするために、if 文が使えます。飲酒可能な年齢かを判定するプログラムを見てみましょう。
if 文は、次のようにして作ることができます。
条件式には、先程の比較演算子や論理演算子が使えます。
条件式を評価した結果が True
であれば、実行されます。
if 条件式:
真の時の処理
if ~ else
条件が偽の時にも行いたい処理がある場合は、if ~ else 文を用いて、次のようにすることができます。
未成年か成人かを判定するプログラムを作ってみましょう。
if ~ else 文の構文は次のとおりです。
if 条件式:
真の時の処理
else:
偽の時の処理
if ~ elif ~ else
条件が偽の時でさらに条件分岐を行いたい場合は、if ~ elif ~ else 文を用いて、次のようにすることができます。
選挙権を判定するプログラムを作ってみましょう。
if ~ elif ~ else 文の構文は次のとおりです。
if 条件式1:
条件式1が真の時の処理
elif 条件式2:
条件式1が偽でかつ条件式2が真の時の処理
else:
条件式1も条件式2も偽の時の処理
練習問題 1
学生の成績を判定するプログラムを作ってみましょう。学生の点数から、優上、優、良、可、不可を判定してください。
成績 | 点数 |
---|---|
優上 | 90 点以上 |
優 | 80〜89 点 |
良 | 65〜79 点 |
可 | 50〜64 点 |
不可 | 0〜49 点 |
練習問題 2
2 つの数のうち大きい方の数を返す関数を作りましょう。
練習問題 3
絶対値を求めるプログラムを作ってみましょう。
ヒント
次の式を思い起こせば、作れそうです。