Pythonにおける条件分岐(条件式)は、プログラムの流れを制御するために非常に重要な役割を果たします。特定の条件が満たされた場合にだけ特定の処理を実行したり、異なる条件に応じて異なる処理を行ったりする際に使用されます。Pythonでは、条件分岐を実現するために主にif、elif、elseのキーワードを使用します。この記事では、Pythonの条件分岐の基本的な使い方から、複雑な条件式まで幅広く解説します。
1. 基本的なif文
条件分岐の最も基本的な形はif文です。if文は、指定された条件がTrue(真)であれば、その後のブロックを実行します。
pythonage = 20
if age >= 18:
print("成人です。")
この例では、ageが18以上であれば「成人です。」というメッセージが表示されます。条件式の後にコロン(:)を使い、その後にインデントされたコードブロックを配置することで条件に合った処理を行います。
2. else文
else文は、if文の条件がFalse(偽)であった場合に実行されるブロックを定義するために使用します。elseは条件式を持たず、if文がFalseの場合にのみ実行されます。
pythonage = 16
if age >= 18:
print("成人です。")
else:
print("未成年です。")
このコードでは、ageが18未満のため「未成年です。」と表示されます。
3. elif文(else if)
elif(else if)は、複数の条件を順番にチェックする際に使用します。最初のif文がFalseであった場合、次にelifの条件が評価され、条件に一致すればそのブロックが実行されます。elifは複数回使用することができます。
pythonage = 25
if age >= 65:
print("シニアです。")
elif age >= 18:
print("成人です。")
else:
print("未成年です。")
ここでは、ageが18以上かつ65未満なので、「成人です。」という結果になります。if文とelif文の順番によって、最初に一致した条件が処理されます。
4. 複数の条件式を使う
Pythonでは、andやorを使って複数の条件を組み合わせることができます。andは両方の条件がTrueの場合に全体がTrueになりますし、orはどちらか一方の条件がTrueであれば全体がTrueになります。
pythonage = 30
income = 50000
if age >= 18 and income >= 30000:
print("年齢と収入の条件を満たしています。")
この例では、ageが18以上であり、かつincomeが30,000以上である場合に「年齢と収入の条件を満たしています。」と表示されます。
pythonage = 17
income = 50000
if age >= 18 or income >= 30000:
print("年齢または収入の条件を満たしています。")
この場合、ageは18未満ですが、incomeが30,000以上であるため、条件がTrueとなり、「年齢または収入の条件を満たしています。」と表示されます。
5. 条件式の否定
条件を否定するためには、notを使います。notは条件がFalseである場合にTrueとなり、逆も同様です。
pythonage = 15
if not age >= 18:
print("未成年です。")
この場合、ageが18未満なので、条件がTrueになり「未成年です。」と表示されます。
6. 複数のif文
複数のif文を使うと、それぞれの条件が独立して評価されます。これは、他の条件に関係なくすべての条件を評価したい場合に便利です。
pythonage = 30
income = 25000
if age >= 18:
print("成人です。")
if income >= 30000:
print("高収入です。")
このコードでは、ageが18以上なので「成人です。」が表示され、incomeが30,000未満なので「高収入です。」は表示されません。
7. ネストされたif文
if文は他のif文の中に入れることもできます。これを「ネストされたif文」と呼び、複雑な条件をチェックする際に使われます。
pythonage = 20
income = 20000
if age >= 18:
if income >= 30000:
print("成人かつ高収入です。")
else:
print("成人ですが、高収入ではありません。")
else:
print("未成年です。")
この例では、ageが18以上の場合にさらにincomeが30,000以上かどうかを評価します。ageが18以上でもincomeが30,000未満であれば「成人ですが、高収入ではありません。」と表示されます。
8. 条件式の比較演算子
Pythonでは、条件式内で比較演算子を使って値を比較することができます。以下の演算子を使用することができます。
-
==(等しい) -
!=(等しくない) -
>(より大きい) -
<(より小さい) -
>=(以上) -
<=(以下)
pythonx = 10
y = 5
if x > y:
print("xはyより大きいです。")
この例では、xがyより大きいため、「xはyより大きいです。」と表示されます。
9. 条件式の組み合わせ例
以下に、複雑な条件式を組み合わせた例を示します。
pythonage = 20
income = 35000
country = "Japan"
if age >= 18 and income >= 30000 and country == "Japan":
print("条件をすべて満たしました。")
else:
print("条件を満たしていません。")
この場合、年齢が18歳以上であり、収入が30,000以上、かつ国が「日本」であれば「条件をすべて満たしました。」と表示されます。
10. if文の書き方のポイント
-
条件式が複雑になる場合、条件を複数の
if文に分けて書くと読みやすくなります。 -
複数の条件を組み合わせる場合、
andやorをうまく使って、論理的に条件を整理しましょう。 -
ネストされた
if文は、論理的な構造が理解しやすくなるように適切に使いましょう。
結論
Pythonの条件分岐は、プログラムの流れを制御する非常に強力なツールです。if、elif、elseを使いこなすことで、複雑なロジックを実装することができます。条件式を使う際は、コードの可読性を保つために、適切なインデントや論理演算子を活用しましょう。
