1. はじめに
Pythonで条件分岐を行う際、複数行のif文を書く場面は非常によくあります。しかし、コードが長くなってしまうと見づらくなり、バグの温床にもなりかねません。
この記事では、Python|複数行のif文をスマートに書く方法について、初心者にもわかりやすく解説します。読みやすく、保守性の高いコードを書くためのコツや、実際の使用例も取り上げています。
「if文が長くてゴチャつく…」という悩みを解決したい方は、ぜひ最後までお読みください。
2. Pythonの複数行if文の基本と構文
2-1. 複数条件のif文の書き方
まずは基本から。Pythonでは複数の条件をand、orでつなげて一つのif文にまとめることができます。
# 複数の条件を1行で書いた例
age = 25
income = 300000
if age > 20 and income > 200000:
print("条件を満たしました")
出力結果:
条件を満たしました
2-2. 可読性を保つ改行方法(バックスラッシュ or 括弧)
複雑な条件式では、1行に収めると見づらくなることもあります。そんなときは以下のように複数行に分けると読みやすくなります。
方法①:バックスラッシュ(\)を使う
if age > 20 and \
income > 200000:
print("条件を満たしました")
方法②:カッコで囲って改行
if (
age > 20 and
income > 200000
):
print("条件を満たしました")
後者の方法の方がエラーが少なく、推奨される書き方です。
3. よくある使い方・応用例
3-1. ネストしたif文の整理
以下のようなネストが深いif文も、早期リターンやガード節を使えばすっきり書けます。
ネストが深い例
def check_user(age, is_active):
if age >= 18:
if is_active:
print("有効なユーザーです")
スマートな書き方
def check_user(age, is_active):
if age < 18 or not is_active:
return
print("有効なユーザーです")
こうすることで、コードが浅く、読みやすくなります。
3-2. elifを使った複数条件の整理
if~elif~elseの構文も、インデントを整理しながらスマートに書くと見通しが良くなります。
score = 75
if score >= 90:
print("評価:A")
elif score >= 70:
print("評価:B")
elif score >= 50:
print("評価:C")
else:
print("評価:D")
出力結果:
評価:B
3-3. 複数の条件式を関数で分割
条件式が複雑な場合は、関数に切り出して可読性を上げるのも有効です。
def is_valid_user(age, is_active, email_verified):
return age > 18 and is_active and email_verified
if is_valid_user(25, True, True):
print("ユーザーは有効です")
出力結果:
ユーザーは有効です
4. 注意点・エラー対策
4-1. インデントミスに注意
Pythonはインデントでコードブロックを判断するため、インデントが不揃いだとエラーになります。
NG例(エラー):
if True:
print("これはエラー") # ←インデントがない
OK例:
if True:
print("これは正しい") # ←インデントあり
4-2. バックスラッシュの使いすぎに注意
バックスラッシュは便利ですが、エスケープ文字としても使われるため、複雑な文字列操作と併用すると混乱の元になります。なるべく()
を使った改行の方が安全です。
4-3. 長すぎる条件式は関数に分離
複雑なif文は、条件を小さな関数にまとめてから使うと、テストや再利用もしやすくなります。
5. まとめ
今回は、Pythonで複数行のif文をスマートに書く方法について解説しました。
- and / orを使った複数条件の書き方
- バックスラッシュやカッコによる改行方法
- ネストを避けたスマートな書き方
- 読みやすさを意識した関数の分離
これらのテクニックを使えば、実務でも読みやすく保守しやすいコードを書くことができます。学習の際は「他人が読んでも理解できるか?」を意識して書くのがコツです。
ぜひあなたのPythonコードに取り入れて、スマートで美しい条件分岐を実現してください。