Pythonの条件分岐とは
Pythonの条件分岐は、プログラムの流れを制御するために使用されます。
条件分岐を利用することで、特定の条件に応じた処理を実行することが可能です。
この記事では、Pythonの条件分岐の基本から応用までを詳しく解説します。
① 基本的な条件分岐
Pythonの条件分岐の基本的な構文には、if、elif、elseがあります。
① if文の使い方
if文は、条件が真の場合に実行されるブロックを指定します。
x = 10
if x > 5:
print("xは5より大きい")この例では、xが5より大きい場合にメッセージが表示されます。
② elif文の使い方
elif文は、前の条件が偽の場合に次の条件をチェックします。
x = 10
if x > 15:
print("xは15より大きい")
elif x > 5:
print("xは5より大きい")この例では、xが15より大きくない場合、次にxが5より大きいかどうかをチェックします。
③ else文の使い方
else文は、すべての条件が偽の場合に実行されるブロックを指定します。
x = 3
if x > 5:
print("xは5より大きい")
else:
print("xは5以下です")この例では、xが5より大きくない場合に「xは5以下です」と表示されます。
② 複合条件の使い方
複数の条件を組み合わせて、より複雑な条件分岐を実装できます。
① 論理演算子を使った条件分岐
andやorなどの論理演算子を使って、複数の条件を組み合わせることができます。
x = 7
if x > 5 and x < 10:
print("xは5より大きく10より小さい")この例では、xが5より大きく、かつ10より小さい場合にメッセージが表示されます。
② 入れ子のif文
if文の中に別のif文を入れることで、入れ子の条件分岐を作成できます。
x = 8
if x > 5:
if x < 10:
print("xは5より大きく10より小さい")この例では、まずxが5より大きいかどうかをチェックし、その後xが10より小さいかどうかをチェックします。
③ 条件式の応用
条件分岐をさらに効率的に使うための応用例を紹介します。
① 三項演算子
三項演算子を使うと、1行で簡潔に条件分岐を書くことができます。
x = 10
result = "xは5より大きい" if x > 5 else "xは5以下です"
print(result)この例では、xが5より大きい場合に「xは5より大きい」、そうでない場合に「xは5以下です」と表示されます。
② 条件分岐を使ったリスト内包表記
リスト内包表記に条件分岐を組み込むことで、リストのフィルタリングが可能です。
numbers = [1, 2, 3, 4, 5, 6]
even_numbers = [num for num in numbers if num % 2 == 0]
print(even_numbers) # 結果: [2, 4, 6]この例では、元のリストから偶数のみを抽出した新しいリストを作成しています。
④ 条件分岐と例外処理
条件分岐と例外処理を組み合わせることで、より堅牢なプログラムを作成できます。
① try-except文の使い方
try-except文を使うと、エラーが発生したときに特定の処理を実行できます。
try:
result = 10 / 0
except ZeroDivisionError:
print("ゼロで除算することはできません")この例では、ゼロで除算しようとするとZeroDivisionErrorが発生し、例外がキャッチされてメッセージが表示されます。
② 複数の例外処理
複数の例外を処理する場合、exceptブロックを複数使うことができます。
try:
result = 10 / 0
except ZeroDivisionError:
print("ゼロで除算することはできません")
except TypeError:
print("型のエラーが発生しました")この例では、ZeroDivisionErrorとTypeErrorの両方を処理しています。
③ elseとfinallyの使い方
elseブロックは例外が発生しなかった場合に実行され、finallyブロックは例外の有無に関わらず必ず実行されます。
try:
result = 10 / 2
except ZeroDivisionError:
print("ゼロで除算することはできません")
else:
print("正常に計算できました")
finally:
print("このメッセージは常に表示されます")この例では、正常に計算できた場合にelseブロックが実行され、finallyブロックは常に実行されます。
⑤ 実践例
条件分岐を使った具体的なプログラム例を紹介します。
① ユーザー入力を用いた条件分岐
ユーザーからの入力に基づいて条件分岐を行うプログラムです。
age = int(input("年齢を入力してください: "))
if age < 18:
print("未成年です")
else:
print("成年です")この例では、ユーザーの年齢に応じて「未成年」または「成年」と表示します。
② ファイルの存在確認を用いた条件分岐
ファイルが存在するかどうかを確認して処理を分岐します。
import os
filename = "example.txt"
if os.path.exists(filename):
print(f"{filename}は存在します")
else:
print(f"{filename}は存在しません")この例では、指定したファイルが存在するかどうかを確認し、その結果に応じてメッセージを表示します。
③ Webスクレイピングにおける条件分岐
Webスクレイピングを行う際に、条件分岐を使って特定の要素を抽出します。
import requests
from bs4 import BeautifulSoup
url = "https://www.example.com"
response = requests.get(url)
soup = BeautifulSoup(response.content, "html.parser")
if soup.title:
print(f"ページのタイトル: {soup.title.string}")
else:
print("タイトルが見つかりません")この例では、指定したURLのページタイトルを取得し、タイトルが見つからない場合にはその旨を表示します。
⑥ 条件分岐における注意点
条件分岐を使う際に注意すべきポイントを解説します。
① インデントの重要性
Pythonでは、インデントがプログラムの構造を決定します。 適切なインデントを守ることで、コードの可読性と動作の正確性が保たれます。
x = 10
if x > 5:
print("xは5より大きい")
print("条件は真です")
else:
print("xは5以下です")② 可読性を保つためのコツ
条件分岐を複雑にしすぎないようにし、可読性を保つための工夫をしましょう。
- 複数の条件を持つ場合は、論理演算子を使って簡潔に書く。
- 入れ子の
if文は避け、関数を使って分割する。 - コメントを適切に追加して、コードの意図を明確にする。
# 複雑な条件分岐の例
x = 10
y = 20
if x > 5 and y < 30:
print("xは5より大きく、yは30より小さい")