Pythonのif文は、特定の条件が真(True)の時に特定のコードを実行する制御フロー文です。
参考 Pythonとは?
"もし○○○なら●●●をする" というように、特定の条件を満たす場合にのみ行う処理を定義することができます。Pythonでも他の言語同様、if文は超・基本知識。
number = 10 if number > 5: print("The number is greater than 5.") # 変数numberが5より大きい場合、 # "The number is greater than 5."というメッセージが表示されます。
参考 print関数の使い方
このページではPython初心者向けにif文(条件分岐)の使い方を0からわかりやすくサンプルコード付きで解説します。
Pythonエンジニアを目指す方であれば知らないと恥ずかしい超・基本知識の1つです。是非最後までご覧ください。
Python:if文を利用した条件分岐
Pythonのif文は、特定の条件を満たすかどうかに基づいてプログラムの動作を決定するためのツールです。
これは「もし(if)この条件が真だったら、これをやる」という意味です。条件が偽の場合、if文の中のコードはスキップされます。
簡単な例を見てみましょう。
age = 18 if age >= 18: # もしageが18以上であれば print("投票できます。") # "投票できます。"と表示する
上記のコードでは、age
という変数が18以上であるかどうかを確認しています。もしage
が18以上であれば(つまり、条件が真であれば)、"投票できます。"というメッセージが表示されます。
参考 Pythonの変数の基本
if
文には、さらに複雑な制御を可能にするためのelse
(「もしifの条件が偽であれば、これをやる」)とelif
(「もしifの条件が偽で、別の条件が真であれば、これをやる」)を加えることができます。
age = 15 if age >= 18: # もしageが18以上であれば print("投票できます。") # "投票できます。"と表示する else: # そうでなければ print("投票するには若すぎます。") # "投票するには若すぎます。"と表示する
このコードでは、age
が18以上なら"投票できます。"と表示し、そうでなければ(つまり、age
が18未満なら)"投票するには若すぎます。"と表示します。
このように、特定の条件に基づいて処理を変えたいような場合に利用するのがif文です。基本的にはどのプログラミング言語にも存在する構文の1つなので、プログラミング初心者でなければ何となくの処理の概要は理解していることでしょう。
このページではPythonにおけるif文の使い方やコツ、注意点を細かく解説していきます。
Python:if文
if 条件式: # 実行する処理
if文を利用する際には以下3つのルールを守りましょう。
もしルールを一つでも守っていない場合、当たり前ですがプログラムは正常には動きません。
if 条件式: 条件式がTrueの場合に行う処理1 条件式がTrueの場合に行う処理2 # ←この部分のインデントがずれている 条件式がTrueの場合に行う処理3 ・・・・・
この場合、処理2の行のインデントがそろっていないためエラーになります。
Python:else文
else
文は、if
文と一緒に使われ、if
文の条件が偽(False)だったときに実行されるブロックを指定します。
if 条件式: # 条件式が真(True)のときに実行するコード else: # 条件式が偽(False)のときに実行するコード
条件式が「偽:False」の場合に行う処理は「else」の後に記述します。インデント(字下げ)などの基本ルールは、ifと同様です。
elseを利用したサンプルコードがこちら。
age = 16 if age >= 20: # もしageが20以上であれば print("成人です。") # "成人です。"と表示する else: # そうでなければ(つまり、ageが20未満であれば) print("未成年です。") # "未成年です。"と表示する
このコードでは、変数age
が20以上かどうかをチェックします。もしage
が20以上(つまり、ifの条件が真)であれば、"成人です。"と表示します。それ以外の場合(つまり、ifの条件が偽)では、"未成年です。"と表示します。
このように、else
を使用することで、特定の条件が偽であったときの動作を明示的に制御することができます。
なお、else
ブロックはオプションであり、必ずしも必要というわけではありません。else
がない場合、ifの条件が偽であったときには何も実行されません。
Python:elif文
Pythonのelif
は、「else if」の略で、if
文とelse
文の間に追加の条件をチェックするために使用します。elif
の後には新たな条件式が続きます。
if 条件式1: # 条件式1が真(True)のときに実行するコード elif 条件式2: # 条件式1が偽(False)で、条件式2が真(True)のときに実行するコード else: # 全ての条件式が偽(False)のときに実行するコード
以下に具体的な例を示します。
temperature = 20 if temperature < 0: # もしtemperatureが0未満であれば print("寒いです。") # "寒いです。"と表示する elif temperature < 30: # そうでなく、temperatureが30未満であれば print("快適です。") # "快適です。"と表示する else: # それ以外の場合(つまり、temperatureが30以上であれば) print("暑いです。") # "暑いです。"と表示する
このコードでは、まずtemperature
が0未満かどうかをチェックします。
もしtemperature
が0未満(つまり、最初のif
の条件が真)であれば、"寒いです。"と表示します。それ以外の場合、次にtemperature
が30未満かどうかをチェックします。
temperature
が30未満(つまり、elif
の条件が真)であれば、"快適です。"と表示します。最後に、それ以外の全ての場合(つまり、すべての前の条件が偽)では、"暑いです。"と表示します。
このように、elif
を使用することで、複数の条件を順番にチェックして適切なコードブロックを実行することができます。また、elif
は任意の数だけ書くことができます。
if文のネスト
Pythonのif文はネスト(入れ子)することも可能です。
わかりやすく言うと、if文の中にさらにif文を書くことができる、ということです。
この特性は、より複雑な条件をチェックするためや、特定の条件が真のときだけさらなるチェックを行いたいときなどに便利です。
age = 25 country = "Japan" if country == "Japan": # もし国が"Japan"であれば if age >= 20: # さらに、年齢が20以上であれば print("あなたは日本で成人です。") # "あなたは日本で成人です。"と表示する else: # そうでなければ(つまり、年齢が20未満であれば) print("あなたは日本で未成年です。") # "あなたは日本で未成年です。"と表示する
このコードでは、まずcountry
が"Japan"かどうかをチェックします。もしcountry
が"Japan"(つまり、最初のifの条件が真)であれば、その中の次のif文に進み、age
が20以上かどうかをチェックします。
そして、age
が20以上なら"あなたは日本で成人です。"を表示し、そうでなければ(つまり、ageが20未満なら)"あなたは日本で未成年です。"と表示します。
ネストされたif文を利用する際は、インデントに注意する必要があります。Pythonはインデントを利用してコードのブロック(スコープ)を認識するため、正しくインデントしないとエラーが発生する可能性があります。
ただし、ネストが深すぎる場合、コードが読みづらくなってしまう点に注意。可読性が低くなるとバグが生まれやすくなります。
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以上です
他のロジックで代替できないか?を検討しましょう。
in / not in
Pythonのin
とnot in
は、ある値が特定のシーケンス(リスト、タプル、文字列、辞書など)の中に存在するかどうかをチェックするために使用します。
in
はその値がシーケンスに存在する場合にTrue
、存在しない場合にはFalse
を返します。一方、not in
はその値がシーケンスに存在しない場合にTrue
を返し、存在する場合にはFalse
を返します。
これらはif文と一緒に使われることが多いので、以下にサンプルコードを記載しておきます。
サンプル inの使用例
fruits = ["apple", "banana", "cherry"] if "banana" in fruits: # もし"banana"がfruitsリストに含まれていれば print("バナナが見つかりました。") # "バナナが見つかりました。"と表示する
サンプル not inの使用例
fruits = ["apple", "banana", "cherry"] if "grape" not in fruits: # もし"grape"がfruitsリストに含まれていなければ print("ブドウが見つかりませんでした。") # "ブドウが見つかりませんでした。"と表示する
また、in / not in は文字列の中に特定の部分文字列が存在するかどうかをチェックするのにも使うことができます。
message = "こんにちは、世界" if "世界" in message: # もし"世界"がmessage文字列に含まれていれば print("メッセージに'世界'が含まれています。") # "メッセージに'世界'が含まれています。"と表示する
Python:if文のまとめ
始めてPythonを勉強するのは結構難しいですよね。
でもその悩みを抱えているのは一人じゃありません。全てのPython使いが同じ道を進んできました。
Pythonをはじめとするプログラミングスキルを武器に、時間と場所に捉われない自由な生き方を目指してみませんか?今すぐ行動したい方は以下の記事をチェック!
読者料典 Python入門:学習カリキュラム ←こちらから!