
機械学習の講師をしている神部です。
Python を学びはじめた時に〇〇の場合といったような条件分岐の実装をしたいといったことがあると思います。
今回は Python でよく使われる if 文の基本を解説します!
プログラミングの力を本当に実感できるのは、コンピューターに「状況に応じた判断」をさせられるようになった時です。
例えば、クイズに正解した時に『正解!』と表示してスコアに10点加える。そうでなければ、『残念!』と表示する」といった処理です。
そのための最も基本的で強力なツールが、今回解説するif文です。if文をマスターすれば、面倒な手作業を自動化したり、ユーザーの操作に反応するアプリケーションを作ったりと、あなたの作れるプログラムの世界が一気に広がります。
この記事では Python の if 文はどのように書くのか?どのように使うのか?実際のコード例も用いてわかりやすく解説します!
目次
この記事では Python の実行環境を簡単に用意できる Google Colaboratory を使用して解説しています。
Google Colaboratory について詳しくは以下の記事をご覧ください!
if 文は条件分岐の設定です。「もし〇〇なら△△をする」といった処理をしたい時に使います。
具体的には「条件」と「条件が満たされた時の処理」で構成されています。
Python での if 文の基本的な書き方は下図のようになります。

if 条件式: 処理 1
まずは if を書き、「条件式」に「もし〇〇の場合」といった条件を記述し、その下に条件を満たしたときの処理を書きます。
また Python の if 文では、以下の 2 点を必ず押さえておきましょう!
補足
インデントは半角スペース 4 つが一般的です!
今回は、「もし 7 時に起きたら」という条件を満たす時に「朝ごはんを食べる」と出力する処理の実装をしてみましょう。
画面に出力する場合は Python では print() 関数を使用します。コードは以下の通りです。
# 起床時間の設定 wake_up_time = 7 # 条件分岐の構文 if wake_up_time == 7: print('朝ごはんを食べる')
朝ごはんを食べる
「朝ごはんを食べる」と出力されましたね。起床時間 (wake_up_time) が 7 だったので画面に「朝ごはんを食べる」と出力されました。
では、条件が満たされない時はどうなるでしょうか。
# 起床時間の設定 wake_up_time = 8 # 条件分岐の構文 if wake_up_time == 7: print('朝ごはんを食べる')
# 何も表示されない
このようにもし〇〇ならといった条件が満たされない時には print('朝ごはんを食べる') の処理はされていないことがわかります。
Python では【条件式】と【処理】をセットで書くということを覚えておきましょう!
もし上記の例で = と == がよくわからなかった場合は、プログラミングの「変数」について学ぶといいでしょう。
変数については詳しくは以下の記事でまとめているのでぜひこちらもご覧ください。
この単純なif文こそ、自動化への第一歩です。プロの現場では、この仕組みを使って何千ものデータの中から特定の条件に合うものだけを瞬時に見つけ出す、といった処理を自動化し、膨大な手作業の時間を節約しています。
先ほどは「もし〇〇なら〇〇をする」といった処理を書きました。そしてその条件を満たさなければ何も処理がされないといったことをお伝えしました。
では「もし〇〇ではない場合に△△の処理をしたい」という場合にはどうすればいいでしょうか。
このような if の条件を満たさない時の処理を設定したい場合は、else といった構文を使います。
if 条件式: 処理1 else: 処理2
このときの注意点としては、else の場合には条件式がないということです。
ではさっそく先ほどの if 文に else を使って条件分岐の処理を実装してみましょう!
以下のような条件を、else を用いてコーディングしていきます。
# 起床時間の設定 wake_up_time = 8 # 条件分岐の構文 if wake_up_time == 7: print('朝ごはんを食べる') else: print('朝ごはんを食べない')
朝ごはんを食べない
この場合では wake_up_time が 7 ではないので最初の if での処理は実行されず「朝ごはんを食べない」という else の処理が実行されました。
念のために wake_up_time が 7 の場合に「朝ごはんを食べる」と表示されるか確認しましょう。
# 起床時間の設定 wake_up_time = 7 # 条件分岐の構文 if wake_up_time == 7: print('朝ごはんを食べる') else: print('朝ごはんを食べない')
朝ごはんを食べる
このように if と else を使って条件分岐を実装できます。
では例えば以下のような処理を実装したい場合はどうすればいいでしょうか。
そのような時には elif 節という構文を使います。
if と else の間に入るのが elif といったイメージです。
if 条件式1: 処理1 elif 条件式2: 処理2 else: 処理3
整理すると以下のようになります。
elif は複数追加することができます。
では先ほどの起きた時間によって出力を変える処理を書いてみましょう。
# 起床時間の設定 wake_up_time = 12 # 条件分岐の構文 if wale_up_time == 7: print('朝ごはんを食べる') elif wake_up_time == 12: print('昼ごはんを食べる') else: print('何も食べない')
昼ごはんを食べる
このように wake_up_time が 12 の場合は if の処理は実行されず、elif の条件と一致していたので else の処理がたどり着く前に「昼ごはんを食べる」といった処理が実行されました。
また、例えば 18 時に起きたら夜ごはんを食べるといった処理を追加したい場合は同じように elif の構文を追加します。
# 起床時間の設定 wake_up_time = 12 # 条件分岐の構文 if wale_up_time == 7: print('朝ごはんを食べる') elif wake_up_time == 12: print('昼ごはんを食べる') elif wake_up_time == 18: print('夜ご飯を食べる') else: print('何も食べない')
夜ご飯を食べる
18 時に起きたという条件が一致していた「夜ごはんを食べる」が出力されました。
「なぜ動かない?」と1人で悩む時間を減らしたい方へ
ifとelifで特定の条件を指定した後、最後にelseを使うことで、「それ以外の全てのケース」を漏れなく処理できます。
基本は理解できた、でもここから応用に進むにつれて、「もしエラーでつまずいてしまったら…」と不安に思うことはありませんか?
プログラミング学習では、一人で悩む時間が挫折の大きな原因になります。
キカガクのAI・データサイエンス人材育成コースなら、プロの講師にいつでも質問し放題なのはもちろん、同じ目標を持つ受講生仲間とコミュニティで相談し合うこともできます。
一人で悩む時間をなくし、仲間と共に最短ルートで成長しませんか?まずは無料説明会で、充実の学習環境について話を聞いてみませんか?
これまで学んだif, elif, elseで、ほとんどの条件分岐は作成できます。しかし、プロの現場では「ある条件を満たした上で、さらに細かい条件で処理を分けたい」という場面が出てきます。
そんな時に使うのが「入れ子構造のif文」です。
例えば以下のような場合です。
こういった場合は if 文を入れ子構造とすることで実装できます。
入れ子構造の if 文の書き方は以下のように書けます。
if 条件式1: if 条件式2: 処理1 else: 処理2 else: 処理3
では先ほどの条件で書いてみましょう。
# 起床時間の設定 wake_up_time = 7 # お腹が空いているかどうか is_hungry = True # 条件分岐の構文 if wake_up_time == 7: if is_hungry == True: print('朝ごはんを食べる') else: print('朝ごはんを食べない') else: print('何も食べない')
朝ごはんを食べる
is_hungry が False の場合、「朝ごはんを食べない」と表示されるかどうか確認します。
# 起床時間の設定 wake_up_time = 7 # お腹が空いているかどうか is_hungry = False # 条件分岐の構文 if wake_up_time == 7: if is_hungry == True: print('朝ごはんを食べる') else: print('朝ごはんを食べない') else: print('何も食べない')
朝ごはんを食べない
そもそも wake_up_time が 7 ではない場合に「何も食べない」と表示されることを確認します。
# 起床時間の設定 wake_up_time = 8 # お腹が空いているかどうか is_hungry = True # 条件分岐の構文 if wake_up_time == 7: if is_hungry == True: print('朝ごはんを食べる') else: print('朝ごはんを食べない') else: print('何も食べない')
何も食べない
このように条件によって処理を変えることができます。
プログラミングでよく使うものになるのでこのあたりしっかりと押さえておきましょう!
プロの現場、特にチームで開発を行う場合、コードは「書く時間」よりも「読まれる時間」の方が圧倒的に長くなります。自分以外の誰か(未来の自分も含む)が、そのコードを読んで修正したり、機能を追加したりするからです。
そのため、長いコードよりは短くて読みやすいコードが好まれます。
if文を1行で書く方法があり、これを三項演算子と言います。
処理1 if 条件式 else 処理2
# 起床時間の設定 wake_up_time = 7 print('朝ごはんを食べる') if wake_up_time == 7 else print('朝ごはんを食べない')
朝ごはんを食べる
else の方も実行されるか確認しましょう。
# 起床時間の設定 wake_up_time = 8 print('朝ごはんを食べる') if wake_up_time == 7 else print('朝ごはんを食べない')
朝ごはんを食べない
きちんと実行されていますね
実際には「Aが〇〇である」という1つだけの条件だけではなく、もっと複雑な条件を使用することが多いですよね。
if 文の中では条件A を満たし、かつ条件B を満たした場合に処理を実行するなど指定することができます。
if 条件式1 and 条件式2: 処理1 else: 処理2
if 条件式1 or 条件式2: 処理1 else: 処理2
# 起床時間の指定 wake_up_time = 7 # お腹が空いているかどうか is_hungry = True # and による複数条件の指定 if wake_up_time == 7 and is_hungry == True: print('朝ごはんを食べる') else: print('朝ごはんを食べない')
朝ごはんを食べる
では、朝 7 時以外に起床した場合についても実行してみましょう。
# 起床時間の指定 wake_up_time = 8 # お腹が空いているかどうか is_hungry = True # and による複数条件の指定 if wake_up_time == 7 and is_hungry == True: print('朝ごはんを食べる') else: print('朝ごはんを食べない')
朝ごはんを食べない
このように and を使うことで複数の条件を全て満たす場合の指定を行うことができました。
では or を使用する場合についても考えてみましょう。
# 起床時間の指定 wake_up_time = 7 # お腹が空いているかどうか is_hungry = False # and による複数条件の指定 if wake_up_time == 7 or is_hungry == True: print('朝ごはんを食べる') else: print('朝ごはんを食べない')
朝ごはんを食べる
では 7 時以外に起床して、お腹も空いていない時はどうなるかを確認しましょう。
# 起床時間の指定 wake_up_time = 8 # お腹が空いているかどうか is_hungry = False # and による複数条件の指定 if wake_up_time == 7 or is_hungry == True: print('朝ごはんを食べる') else: print('朝ごはんを食べない')
朝ごはんを食べない
このように or を使うことで片方の条件でも満たす場合の指定をおこなうことができました。
独学でのエラー解決に悩んでいる方へ
ここまで条件が複雑になるとif文も長くなる、ということがわかると思います。
また、前で説明したように実務で活用する上で、特にチームでの開発などではコードの読みやすさは重要になってきます。
if文の組み合わせが複雑になると、ちょっとしたミスでエラーが出やすくなります。
キカガクのAI・データサイエンス人材コースなら、プロの講師にいつでも質問し放題。
「なぜ動かないんだろう…」と一人で悩む時間をなくし、最短ルートで成長しませんか?
条件が複雑になればなるほど if 文は長くなっていき、コードが読みづらくなってしまいエラーを引き起こす原因にもなります。
以下では if 文を適切に改行することでコードを読みやすくする方法についてみていきましょう。
バックスラッシュ\ を使う、もしくは if 分の条件部分を括弧 () で囲むことで改行を行うことができます。
以下の場合を例に考えてみましょう。
# 起床時間の指定 wake_up_time = 7 # お腹が空いているかどうか is_hungry = True # 朝ごはんが買ってあるかどうか is_breakfast_available = True # and による複数条件の指定 if wake_up_time == 7 and is_hungry == True and is_breakfast_available == True: print('朝ごはんを食べる') else: print('朝ごはんを食べない')
朝ごはんを食べる
改行がないと条件文の構造がわかりづらくなってしまいます。
# 起床時間の指定 wake_up_time = 7 # お腹が空いているかどうか is_hungry = True # 朝ごはんが買ってあるかどうか is_breakfast_available = True # and による複数条件の指定 if wake_up_time == 7 \ and is_hungry == True \ and is_breakfast_available == True: print('朝ごはんを食べる') else: print('朝ごはんを食べない')
朝ごはんを食べる
バックスラッシュを使った改行により条件部分のコードがかなりみやすくなりました!
() を使う方法についてもみてみましょう。
# 起床時間の指定 wake_up_time = 7 # お腹が空いているかどうか is_hungry = True # 朝ごはんが買ってあるかどうか is_breakfast_available = True # and による複数条件の指定 if ( wake_up_time == 7 and is_hungry == True and is_breakfast_available == True ): print('朝ごはんを食べる') else: print('朝ごはんを食べない')
朝ごはんを食べる
このように適切に改行を加えることで複雑な条件指定をわかりやすくすることができますのでぜひ活用してみてください!
本記事では Python の if 文について解説しました。
まとめは以下になります。
この記事を通して、if, elif, elseを組み合わせることで、プログラムに複雑なルールを教え、状況に応じた判断をさせられるようになりました。
if 文はプログラミングで非常に多く使われる処理です。ぜひいろいろなケースを想定しながら if 文を使ってみてマスターしましょう!
この強力な「条件分岐」のスキルを使い、実際に自分だけのアプリやデータ分析レポートといった成果物を作成したいと思いませんか?
キカカクのAI・データサイエンス人材育成コースでは、今回学んだような基礎知識を応用し、データに基づいた意思決定ができるAIアプリや分析レポートの作成までを、プロの講師が徹底的にサポートします。
学んだ知識を「本物のスキル」に変える、次の一歩を踏み出してみましょう。
まずは無料説明会で話を聞いてみませんか?
⇩ ⇩ ⇩ ⇩
.png)
また if 文と一緒に使われる処理に、比較演算子や論理演算子などといったものがあります。
こちらも以下の記事で紹介していますのでぜひご覧ください。
SHARE
AI/データサイエンス学びはじめの方におすすめの記事
コース一覧
注目記事
新着記事
目次