Pythonを学び始めると、特定の条件によってプログラムの動きを変えたい場面が多くあります。例えば、「もしユーザーがログインしていたら、マイページを表示する」「もしスコアが100点だったら、お祝いのメッセージを出す」といった具合です。
この記事では、そのような「もし〜だったら」を実現するためのif文(条件分岐)と、その根幹を支えるブール型という考え方について、初心者の方にも分かりやすく解説していきます。
プログラミングにおける「真」と「偽」- ブール型
まず、条件分岐を理解する上で欠かせないのがブール型 (boolean type) です。
これは非常にシンプルで、**True
(真)かFalse
(偽)**の2つの値しか取りません。「正しい」か「間違い」か、といった二者択一の状態を表すためのデータ型です。
Pythonでは、このように変数にTrue
やFalse
を直接代入できます。
# ユーザーが有効かどうかを表す変数
is_active = True
print(is_active)
このis_active
という変数が、これから学ぶ条件分岐の鍵となります。
2つの値を比べる – 比較演算子
では、どのようにしてTrue
やFalse
を作り出すのでしょうか。そこで登場するのが比較演算子です。これは、2つの値を比べて、その関係が正しいか(True
)、間違っているか(False
)を判断するための記号です。
演算子 | 意味 | 例 | 結果 |
== | 等しい | 100 == 100 | True |
!= | 等しくない | 100 != 50 | True |
< | より小さい | 30 < 80 | True |
> | より大きい | 90 > 20 | True |
<= | 以下 | 50 <= 50 | True |
>= | 以上 | 60 >= 70 | False |
いくつか実際のコードで試してみましょう。
# 数値の比較
print(100 == 100) # 結果: True
print(50 == 51) # 結果: False
# 文字列の比較もできます
print("apple" == "apple") # 結果: True
# 等しくないかどうかの比較
print(20 != 30) # 結果: True
print(20 != 20) # 結果: False
# 大小の比較
print(30 < 80) # 結果: True
print(90 > 100) # 結果: False
このように、比較演算子を使った式は、必ずTrue
かFalse
のどちらかの結果を返します。この結果を利用して、プログラムの次の動きを決定します。
複数の条件を組み合わせる – 論理演算子
ときには、「AかつB」や「AまたはB」のように、複数の条件を組み合わせて判断したいことがあります。そのような場面で活躍するのが**論理演算子(ブール演算子)**です。代表的なものにand
、or
、not
があります。
and
演算子(かつ)
and
で繋がれた条件は、両方がTrue
の場合のみ、全体としてTrue
になります。一つでもFalse
があればFalse
です。
# 両方の条件が正しいのでTrue
result1 = (10 > 5) and (3 < 9)
print(result1) # 結果: True
# 右側の条件が間違いなのでFalse
result2 = (10 > 5) and (3 > 9)
print(result2) # 結果: False
or
演算子(または)
or
で繋がれた条件は、どちらか一方でもTrue
であれば、全体としてTrue
になります。両方がFalse
のときだけFalse
です。
# 右側の条件が正しいのでTrue
result1 = ("orange" == "banana") or (50 >= 50)
print(result1) # 結果: True
# 両方の条件が間違いなのでFalse
result2 = (10 == 20) or (3 > 5)
print(result2) # 結果: False
not
演算子(ではない)
not
は、True
とFalse
を反転させます。
is_ok = True
print(not is_ok) # 結果: False
is_failed = False
print(not is_failed) # 結果: True
# notを重ねることもできます
print(not not not not is_ok) # 結果: True(2回反転して元に戻るのを2回繰り返す)
if文でプログラムの流れを制御する
これまでに学んだ「ブール型」「比較演算子」「論理演算子」を組み合わせて、if文を使用します。
if
文の基本的な構造は以下の通りです。
if 条件式:
# 条件式がTrueのときに実行される処理
if
の後に続く条件式(比較演算子などを使った式)がTrue
と評価された場合のみ、その下のインデント(字下げ)されたコードブロックが実行されます。
基本的なif文
例えば、特定のユーザーにだけ挨拶を表示するプログラムです。
user_name = "Alice"
if user_name == "Alice":
print("アリスさん、ようこそ。")
このコードを実行すると、「アリスさん、ようこそ。」と表示されます。もしuser_name
が別の名前であった場合、if
の条件式がFalse
になるため、print
文は実行されず、何も表示されません。
else
で「それ以外」の処理を追加する
条件がTrue
ではなかった場合に、何か別の処理をさせたい場合はelse
を使います。
user_password = "secure_password"
if user_password == "secret123":
print("認証に成功しました。")
else:
print("パスワードが間違っています。")
このプログラムでは、user_password
が"secret123"
と一致すれば「認証に成功しました。」と表示され、それ以外であればelse
以下のブロックが実行され、「パスワードが間違っています。」と表示されます。
このように、if
とelse
を使うことで、条件に応じてプログラムの振る舞いを柔軟に変更できます。
まとめ
今回は、Pythonにおける条件分岐の基本を解説しました。
- ブール型:
True
とFalse
で状態を表します。 - 比較演算子:
==
や>
などで値を比べ、True
かFalse
を返します。 - 論理演算子:
and
やor
で複数の条件を組み合わせます。 - if文: 条件が
True
のときに特定の処理を実行させます。 - else:
if
の条件がFalse
だった場合の処理を記述します。
これらの知識は、より複雑で便利なプログラムを作っていくための、非常に重要な土台となります。ご自身で変数や値を変えて、色々な条件を試してみることをお勧めします。