メインコンテンツまでスキップ

条件分岐

ここでは、Python で条件分岐をする方法について学んでいきます。

論理値

Python では、文字列や数字以外にも論理値という真か偽かを表す値があります。真は True、偽は False と表せ、これは変数などにも代入できます。

下のプログラムでは、TrueFalse を表示しています。"True""False" のようにダブルクォーテーション( " )がついていないことに気をつけましょう。

Open In Colab
Open In Colab

比較演算子

Python では、次のように比較演算子を用いて真偽を判定することができます。次のプログラムでは、age > 20 が偽なので、論理値である False が返されています。

Open In Colab

他にも様々な比較演算子があります。なぜか != の存在を忘れる人が続出するので、要注意!

比較演算子説明
==等しい
Open In Colab
!=等しくない
Open In Colab
<小なり
Open In Colab
<=以下
Open In Colab
>大なり
Open In Colab
>=以上
Open In Colab

他の多くのプログラミング言語はできませんが、実は、Python では数学のように複数の比較演算子を使った条件も書くことができます。

Open In Colab

論理演算子

論理値に対して、論理演算子を使ってさらに複雑な計算をすることができます。

Open In Colab

このプログラムは、>= 一つを使って書き換えた次と同じです。

Open In Colab

他にも様々な論理演算子があります。

論理演算子説明
not否定
Open In Colab
andかつ
Open In Colab
orまたは
Open In Colab

条件分岐

if

年齢に応じて、飲酒可能な年齢かを判定するプログラムを作りましょう。しかし、今までに学習した内容ではこのようなプログラムを作ることはできそうにありません。このような処理をするために、if 文が使えます。飲酒可能な年齢かを判定するプログラムを見てみましょう。

Open In Colab

if 文は、次のようにして作ることができます。 条件式には、先程の比較演算子や論理演算子が使えます。 条件式を評価した結果が True であれば、実行されます。

if 条件式:
真の時の処理

if ~ else

条件が偽の時にも行いたい処理がある場合は、if ~ else 文を用いて、次のようにすることができます。

未成年か成人かを判定するプログラムを作ってみましょう。

Open In Colab

if ~ else 文の構文は次のとおりです。

if 条件式:
真の時の処理
else:
偽の時の処理

if ~ elif ~ else

条件が偽の時でさらに条件分岐を行いたい場合は、if ~ elif ~ else 文を用いて、次のようにすることができます。

選挙権を判定するプログラムを作ってみましょう。

Open In Colab

if ~ elif ~ else 文の構文は次のとおりです。

if 条件式1:
条件式1が真の時の処理
elif 条件式2:
条件式1が偽でかつ条件式2が真の時の処理
else:
条件式1も条件式2も偽の時の処理

練習問題 1

学生の成績を判定するプログラムを作ってみましょう。学生の点数から、優上、優、良、可、不可を判定してください。

成績点数
優上90 点以上
80〜89 点
65〜79 点
50〜64 点
不可0〜49 点
解答
Open In Colab

練習問題 2

2 つの数のうち大きい方の数を返す関数を作りましょう。

解答
Open In Colab

練習問題 3

絶対値を求めるプログラムを作ってみましょう。

ヒント

次の式を思い起こせば、作れそうです。

x={xif x0,xelse.|x|= \begin{dcases} x & \text{if $x\geq 0$,} \\ -x & \text{else.} \end{dcases}
解答
Open In Colab

別解

Open In Colab

実は、組み込み関数で abs 関数があります。また、前に出てきたmath ライブラリの fabs 関数もあります。

Open In Colab
Open In Colab