【Python】if文―条件分岐(else/elif/if)3分ぐらいで読めます

Python

Pythonでif文を用いて条件分岐を実装する方法を初心者向けに解説します。

if文は、"もし○○○なら●●●をする" というように、特定の条件を満たす場合にのみ行う処理を定義することができます。Pythonでも他の言語同様、if文は超・基本知識です。

このページで学べる内容
  • Python:if文の基本
  • 比較演算子の使い方
  • else・elif の意味と使い方
  • if文のサンプルコードと注意点

Pythonエンジニアを目指す方や、Pythonで業務の自動化をしようと思っている方であれば絶対に知っておきたい超・重要知識です。

是非最後までご覧いただき、if文をマスターしておきましょう!

スポンサーリンク
スポンサーリンク

Python:if文の基本

if文は、その名の通り特定の場合にのみ処理を行いたい場合に用いる構文です。

例えば、「入力された値が ●●● であれば」や「ユーザが △△△ をクリックしたら」など、何らかの特定の条件に応じて処理を分岐させたい場合。

このような場合に、if文を利用します。

if文:構文ルール

if文―基本形
if 条件式:
    条件式がTrueの場合に行う処理1
    条件式がTrueの場合に行う処理2
    ・・・・・

基本的な書き方で注意すべき点は、2点。

  1. 条件式の後ろには必ず「:(コロン)」を置く
  2. ブロック全体のインデントをそろえる

たったこれだけです。

2の「ブロック全体のインデントをそろえる」に関しては、if文に関わらずPythonに共通する内容です。

Pythonでは、文の区切りは改行(ピリオドやセミコロンは不要)、処理のまとまり―ブロックはインデント(字下げ)で表現されます。

if 条件式:
    条件式がTrueの場合に行う処理1
  条件式がTrueの場合に行う処理2    # ←この部分のインデントがずれている
  条件式がTrueの場合に行う処理3
    ・・・・・

この場合、処理2の行のインデントがそろっていないためエラーになります。

Pythonになれていない方ほど、この点を見落としがちになってしまうので注意して覚えておきましょう。

基本構文を押さえたところで、実際のサンプルコードを確認しながらif文への理解を深めていきましょう。

Python:if文のサンプルコード

サンプルコード
sample = 4
if sample > 3 :
    print("条件を満たします")


# 結果 ⇒ 条件を満たします

変数"sample" の初期値が4で設定されているため、条件「sample > 3」の結果は真:true です。

条件式が真:true となるため、指定した文字列が画面に表示されるようになります。

変数"sample" の初期値を3以下に指定した場合は処理は行われません。

sample = 2
if sample > 3 :
    print("条件を満たします")


# 何も表示されません。

Python:else

他のプログラミング言語同様、条件式が「偽:false」となる場合の処理内容も指定することが可能です。

構文ルール:else
if 条件式:
    条件式がTrueの場合に行う処理
else:
    条件式がFalseの場合に行う処理

条件式が「偽:False」の場合に行う処理は「else」の後に記述します。インデント(字下げ)などの基本ルールは、ifと同様です。

else:サンプルコード

サンプルコード
sample = 2
if sample > 3 :
    print("条件を満たします")
else:
    print("条件を満たしません")

画面に表示されるのは「条件を満たしません」という文字です。簡単ですね。

変数"sample" が2であるため、条件を満たさず、elseブロックに記述した処理が行われたということです。

sample = 4
if sample > 3 :
    print("条件を満たします")
else:
    print("条件を満たしません")

# 条件を満たします

もちろん、条件に合致する場合はelseブロックに記述した処理は行われません。

Python:elif

条件式を複数指定することも可能です。

その場合に利用するのは「elif」です。他の言語を借りて説明すると「else if」と同じです。

構文ルール:elif
if 条件式1:
    条件式1がTrueの場合に行う処理
elif 条件式2:
    条件式2がTrueの場合に行う処理
else:
    条件式1,2がいずれも「偽:False」の場合に行う処理

elifについても、サンプルコードを確認しておきます。

elif:サンプルコード

サンプルコード
sample = 3

if sample > 3 :
    print("条件1を満たします")
elif sample == 3:
    print("条件2を満たします")
else:
    print("どの条件も満たしません")

結果は「条件2を満たします」。

補足しておくと、条件式の判定は上から順に行わることに注意が必要です。

sample = 5

if sample > 4 :
    print("条件1を満たします")
elif sample > 3:
    print("条件2を満たします")
else:
    print("どの条件も満たしません")

この場合、結果は「条件1を満たします」。

条件式2「elif sample > 3:」の前に、条件式1「if sample > 4 :」が成立するためです。

以外と、if文を使っていくときにミスをしがちな点ですので、注意して覚えておきましょう。

if文のネスト

少しだけ実践的な内容。

if文の中に、さらにif文を記述することもでき、これをif文のネストと言います。

sample = 10
if sample > 9 :
    print("条件を満たします")
    if sample > 8:
        print("変数の値は8以上です")
else:
    print("条件を満たしません")


# 条件を満たします
# 変数の値は8以上です

最初に「sample > 9」という条件を判定し、結果が "true" となる場合にのみ「sample > 8」という条件を判定します。

つまり、変数"sample" が9より小さい場合は、ネストしたif文は判定さえ行われないという点に注意しましょう。

また、ネストの数にも注意しましょう。

number = 10
if number > 1:
    print("numberは1以上です")
    if number > 2:
        print("numberは2以上です")
        if number > 3:
            print("numberは3以上です")
            if number > 3:
                print("numberは3以上です")

# numberは1以上です
# numberは2以上です
# numberは3以上です
# numberは3以上です

読みづらくなってしまいますし、その分バグも多くなってしまう印象です。

他のロジックで代替できないか?を検討しましょう。

Python:比較演算子

最後に、if文とセットで覚えておきたい比較演算子について解説します。

比較演算子とは、その名の通り左辺と右辺を比較するために用いられる記号のことです。

一つひとつは簡単ですが、これらをうまく比較することで様々なパターンの比較を行うことができるようになります。

演算子意味
a == b
(a is b)
a が b と等しい
a != b
(a is not b)
a が b と異なる
a < ba が b よりも小さい
a > ba が b よりも大きい
a <= ba が b 以下である
a >= ba が b 以上である
a in ba が b に含まれる
a not in ba が b に含まれない

基本的には数学の考え方と同じ。

in / not in については少しだけ補足します。

in / not in

number = [1,2,3,4,5,6,7,8,9,10]
if 1 in number:
    print("1は含まれます。")

# 1は含まれます。

in演算子とnot in演算子については、比較対象のがリスト・タプルなどの複数の要素を持つオブジェクトでなければなりません。

number = 1
if 1 in number:
    print("1は含まれます。")

# TypeError: argument of type 'int' is not iterable

比較対象が、変数(複数の要素を持たないオブジェクト)の場合は、ご覧のように「TypeError: argument of type 'int' is not iterable」と出力されます。

これで、Pythonのif文についてはOKです。

Pythonを1から学習したい方は

Pythonをより実践的に学びたい―。実際にコーディングをしながら学びたい―。独学に限界を感じている―。

そんな方には、無料体験/オンライン完結もあるプログラミングスクールで学ぶのがおすすめです。都度検索しながら知識を補完していくのではなく、1から体系立てて学ぶことで短時間・かつ効率的にスキルハックすることが可能です。

各プログラミングスクールの特徴をまとめた記事をこちらに記載しておきますので、是非ご覧ください。

タイトルとURLをコピーしました