チュートリアル

Python基礎構文:条件分岐(if文)

Python入門条件分岐if文
広告エリア

はじめに

Python基礎構文シリーズ第2回は「条件分岐(if文)」です。プログラムの流れを条件によって変える方法を学びます。

基本的なif文

age = 20

if age >= 18:
    print("成人です")

重要: Pythonではインデント(字下げ)でブロックを表現します。通常は半角スペース4つを使用します。

if-else文

条件が満たされない場合の処理を追加できます。

age = 15

if age >= 18:
    print("成人です")
else:
    print("未成年です")

if-elif-else文

複数の条件を順番にチェックできます。

score = 75

if score >= 90:
    print("評価: A")
elif score >= 80:
    print("評価: B")
elif score >= 70:
    print("評価: C")
elif score >= 60:
    print("評価: D")
else:
    print("評価: F")

elif は「else if」の略で、最初の条件が偽の場合に次の条件をチェックします。

比較演算子

演算子意味
==等しいx == 10
!=等しくないx != 10
>より大きいx > 10
<より小さいx < 10
>=以上x >= 10
<=以下x <= 10
x = 10

print(x == 10)  # True
print(x != 5)   # True
print(x > 5)    # True
print(x < 20)   # True
print(x >= 10)  # True
print(x <= 10)  # True

論理演算子

複数の条件を組み合わせることができます。

and(かつ)

両方の条件が真の場合にTrue。

age = 25
income = 500

if age >= 20 and income >= 300:
    print("ローン審査に通過")

or(または)

どちらかの条件が真の場合にTrue。

day = "土曜日"

if day == "土曜日" or day == "日曜日":
    print("週末です")

not(否定)

条件を反転させます。

is_logged_in = False

if not is_logged_in:
    print("ログインしてください")

組み合わせ

age = 25
is_student = True
has_coupon = False

# 学生、または25歳以下、またはクーポン持ち
if is_student or age <= 25 or has_coupon:
    print("割引適用")

in演算子

リストや文字列に含まれているかを判定します。

fruits = ["りんご", "みかん", "バナナ"]

if "りんご" in fruits:
    print("りんごがあります")

if "ぶどう" not in fruits:
    print("ぶどうはありません")

# 文字列にも使用可能
message = "Hello, World!"
if "World" in message:
    print("Worldが含まれています")

三項演算子

1行で条件分岐を書く方法です。

age = 20

# 通常のif文
if age >= 18:
    status = "成人"
else:
    status = "未成年"

# 三項演算子で書くと
status = "成人" if age >= 18 else "未成年"

print(status)  # 成人

真偽値の評価

Pythonでは、以下の値は False として評価されます。

# Falseとして評価される値
if not 0:
    print("0はFalse")

if not "":
    print("空文字はFalse")

if not []:
    print("空リストはFalse")

if not None:
    print("NoneはFalse")

これを活用した書き方:

name = ""

# 冗長な書き方
if name != "":
    print("名前があります")

# Pythonらしい書き方
if name:
    print("名前があります")
else:
    print("名前がありません")

ネストされたif文

if文の中にif文を書くこともできます。

age = 25
has_license = True

if age >= 18:
    if has_license:
        print("運転できます")
    else:
        print("免許を取得してください")
else:
    print("18歳になるまで待ってください")

ただし、ネストが深くなると読みにくくなるため、可能な限り andor で1つの条件にまとめることを推奨します。

まとめ

  • if, elif, else で条件分岐
  • インデント(半角スペース4つ)でブロックを表現
  • 比較演算子: ==, !=, >, <, >=, <=
  • 論理演算子: and, or, not
  • in でリストや文字列の包含を判定
  • 三項演算子: 値1 if 条件 else 値2

次回は「ループ処理(for, while)」について学びます。

広告エリア