こんにちは、かつコーチです。
前回、比較演算子と論理演算子について解説しました。
今回はそれらを実際に活用する条件分岐、つまりif文の書き方を解説します。
「if文の書き方は分かったけど、インデントでよくエラーが出る」
そんな初心者がつまずきやすいポイントも、実体験を交えて紹介します。
if文とは?
条件によって処理を分ける仕組み
条件分岐とは、「もし〇〇なら△△する」というように、条件によって実行する処理を変える仕組みです。
Pythonではif文を使って条件分岐を書きます。
age = 20
if age >= 18:
print("成人です")
成人です
age >= 18がTrueのときだけ、print("成人です")が実行されます。
なぜインデントが重要なのか
Pythonでは、{}ではなくインデント(字下げ)でコードのまとまりを表現します。
これは他の多くの言語にはない、Python特有の大きな特徴です。
インデントがずれていると、正しく動かなかったり、エラーになったりします。
インデントは基本的に半角スペース4つで統一するのが慣習です。
基本の書き方・実装手順
if・elseで2択の分岐を書く
条件に当てはまらない場合の処理は、elseで書けます。
age = 15
if age >= 18:
print("成人です")
else:
print("未成年です")
未成年です
if・elif・elseで3択以上の分岐を書く
条件が3つ以上ある場合は、elif(else ifの略)を使います。
score = 75
if score >= 90:
print("評価はA")
elif score >= 70:
print("評価はB")
elif score >= 50:
print("評価はC")
else:
print("評価はD")
評価はB
elifは上から順に評価され、最初にTrueになった条件のブロックだけが実行されます。
条件を組み合わせる書き方
前回学んだ論理演算子(and/or)を使うと、複数条件を1つのif文にまとめられます。
age = 25
has_license = True
if age >= 18 and has_license:
print("運転できます")
else:
print("運転できません")
運転できます
つまずきやすい設定・注意点
if文の行末には、必ずコロン(:)が必要です。
コロンを忘れると、次のようなエラーになります。
age = 20
if age >= 18
print("成人です")
SyntaxError: expected ':'
「なぜかエラーが出る」と感じたら、まずコロンの付け忘れを疑ってみてください。
よくあるつまずきポイント・エラー対処
インデントがずれてエラーになる
これは筆者がPythonを学び始めた頃、何度も遭遇したエラーです。
タブとスペースが混在していたり、字下げの量がずれていたりすると発生します。
❌ Before(インデントがずれた書き方)
age = 20
if age >= 18:
print("成人です")
print("投票できます")
実行すると、次のエラーが出ます。
IndentationError: unindent does not match any outer indentation level
2行目のインデントが3スペースになっており、1行目の4スペースと揃っていないことが原因です。
✅ After(正しい書き方)
age = 20
if age >= 18:
print("成人です")
print("投票できます")
成人です
投票できます
同じブロック内の行は、インデントの量を完全に揃える必要があります。
筆者はこのエラーに何度も遭遇した経験から、エディタの自動インデント機能をオンにして、タブではなくスペースに統一する設定を強くおすすめします。
VSCodeであれば、右下のインデント表示から「Convert Indentation to Spaces」を選ぶことで統一できます。
まとめ
この記事のポイント
if文は条件によって処理を分岐させる仕組みである- Pythonは
{}ではなくインデントでブロックを表現する - 複数条件の分岐には
elif、それ以外の場合にはelseを使う if文の行末には必ずコロン(:)が必要- インデントのずれは
IndentationErrorの原因になるため、スペース4つで統一する
次に読むべき記事
- 数値演算と演算子の基本
- for文・while文で繰り返し処理
- リストの基本:作成・追加・削除・スライス
タグ: Python, 初心者向け, 基本文法