Pythonでは、プログラムの流れを制御するために条件分岐を使用します。条件分岐を使うと、特定の条件に応じて異なる処理を実行することができます。最も基本的な条件分岐のキーワードには、if、elif、elseがあります。
この記事では、if、elif、elseを使った条件分岐について、基本的な使い方や例を交えて解説します。
1. if 文
if 文は、与えられた条件が**真(True)**の場合に、特定の処理を実行するために使われます。
基本構文
if 条件:
実行する処理
例: 基本的な if 文
x = 10
if x > 5:
print("xは5より大きい")
この場合、x が 5 より大きいので、xは5より大きい が出力されます。
2. elif 文
elif 文は、最初の if 文の条件が偽(False)だった場合に、別の条件をチェックするために使います。elif は「else if」を短縮したもので、複数の条件を扱う場合に便利です。
基本構文
if 条件1: 実行する処理1 elif 条件2: 実行する処理2
例: if と elif の組み合わせ
x = 5
if x > 10:
print("xは10より大きい")
elif x == 5:
print("xは5と等しい")
この場合、x == 5 の条件が真なので、xは5と等しい が出力されます。
3. else 文
else 文は、すべての if と elif の条件が偽(False)だった場合に、デフォルトで実行される処理を指定するために使います。条件を指定する必要はありません。
基本構文
if 条件1:
実行する処理1
elif 条件2:
実行する処理2
else:
実行する処理3
例: if、elif、else の組み合わせ
x = 3
if x > 10:
print("xは10より大きい")
elif x == 5:
print("xは5と等しい")
else:
print("xは10以下で、5でもない")
この場合、x > 10 でも x == 5 でもないので、xは10以下で、5でもない が出力されます。
4. 条件式のネスト
if 文を入れ子にして使う(ネストする)ことができます。これにより、複雑な条件に基づいて分岐を行うことができます。
例: 条件式のネスト
x = 7
if x > 5:
if x < 10:
print("xは5より大きく、10未満です")
else:
print("xは10以上です")
この場合、最初の if x > 5 が真で、その後の if x < 10 も真であるため、xは5より大きく、10未満です が出力されます。
5. 条件式と論理演算子
条件式には論理演算子(and、or、not)を組み合わせることで、複数の条件を同時にチェックすることができます。
例: 複数条件の組み合わせ
x = 8
if x > 5 and x < 10:
print("xは5より大きく、10未満です")
この場合、x > 5 かつ x < 10 が真なので、xは5より大きく、10未満です が出力されます。
6. 三項演算子(if 文の簡略化)
Pythonでは、簡単な条件分岐を一行で書くために三項演算子を使うことができます。三項演算子は、if 文を1行にまとめた構文です。
基本構文
値1 if 条件 else 値2
例: 三項演算子
x = 10
result = "xは10以上" if x >= 10 else "xは10未満"
print(result) # "xは10以上"
7. if 文での真偽判定
Pythonでは、数値や文字列、リストなど、任意のデータ型を if 文の条件式に使うことができます。Pythonは、以下のようにデータの状態に基づいて**真(True)または偽(False)**と判断します。
-
数値:0 は偽、0 以外は真
-
文字列:空文字列(””)は偽、1文字以上の文字列は真
-
リスト、タプル、辞書、セット:空のものは偽、要素があれば真
例:
x = 0
if x:
print("xは真です")
else:
print("xは偽です") # 0なので偽
name = ""
if name:
print("名前があります")
else:
print("名前がありません") # 空文字列なので偽
まとめ
Pythonの条件分岐には、if、elif、else の3つの構文があり、それぞれ異なる役割を持っています。
-
if: 条件が真のときに処理を実行します。
-
elif: 最初の if 文が偽の場合に、別の条件をチェックします。
-
else: すべての if や elif の条件が偽の場合に、デフォルトの処理を行います。
条件分岐を使うことで、プログラムの流れを柔軟に制御し、さまざまな状況に応じた動作を実現できます。
コメント