Python

Pythonのif文がわかる!基礎から応用まで分かりやすく解説します!

人工知能や機械学習で人気が沸騰中のPython。最近では自宅でプログラミングを学習できるので、独学で学んでいる方も多いでしょう。

そんなPythonで必須とも言えるのが条件分岐のif文。ですが、if文はややこしい点が多く、分かりくいのも事実です。この記事ではif文の役割、使い方を学習につまずいた人でも分かりやすく解説します。

if文の基礎

最初にif文の役割や基本的な使い方について説明します。実際にプログラムを書くうえでもif文の使用頻度は高いので、きちんと基礎を理解しておきましょう。

if 文とは

if文は条件分岐のための文法です。Pythonのみならず、JavaやRubyなど様々なプログラミング言語で同様の処理が使われています。

ifは「もし」という意味で、「もし◯◯ならば××する」という処理を表します。例えば「データがある条件◯◯を満たす場合にのみ、そのデータに××という処理をする」というような場合に使われます。

if文の役割

先ほど紹介した通り、if文は条件を分岐させて指示を出す役割があり、言葉で説明すると「もし◯◯ならば××する」になります。

例えば、答案の採点プログラムを作ったとします。
答案を採点して、

100点を取っていた場合は「満点です」
90点〜70点なら「合格水準に達しています」
60点以下は「もう少し頑張りましょう」

と表示したい場合、多くのプログラマはif文を使って処理を行います。

与えられたデータに対してどのような処理をするかをif文の中に記述しておくことで、対応したそれぞれの処理を実行できます。少し難しいですが、役割を把握しておくことで応用に活かせるので、ぜひ理解しておきましょう。

真偽値について

if文の使い方を説明する前に真偽値について説明します。

真偽値とは、条件が満たされているかどうかを示す値で、満たされている場合「True」、満たされていない場合「False」になります。

分かりにくい方は「True」を「YES」、「False」を「NO」と覚えておき、「True」の時に処理が実行され、「False」の時は処理が実行されないと理解しておけば大丈夫ですよ。

if文の基本的な使い方

それでは、 if文の簡単な使い方を説明します。

i f 条件式1:
条件式1が True の時に行う処理

e l i f 条件式2:
条件式1が False で、かつ条件式2が True の時に行う処理

e l i f 条件式3:
条件式1,2がともに False で、かつ条件式3が True の時に行う処理
・・・

e l s e:上の条件式がどれも False の時に行う処理

「elif」と「else」については後から解説しますが、上記の場合、まず条件式1がTrueだった場合には最初の処理が実行されます。条件式1が実行されなかった時には、条件式2が判定され、条件式2がTrueであれば第二の処理が実行されます。

条件式2が実行されなかった時には…と繰り返していき、条件がどれも満たされなかった時には「else」の中の処理が実行されることになります。

コードを書いている時に分からなくなったら「もし◯◯ならば××する」を思い出すだけで理解できることもあります。

最初は難しくても自分でコードを書いている内に慣れてくるので、どんどん練習してみてくださいね。

if文でよく使われる文法をそれぞれ解説

次に、if文でよく使われている文法・条件式をそれぞれ解説します。特に比較演算子はよく使われるのでチェックしておいてくださいね。

比較演算子について

if文を使った条件分岐で頻繁に使われるのが、比較演算子です。比較演算子は2つの式や値を比較して結果を真偽値で返します。

例えば「A < B」とすると、Bの値がAの値より大きい時にTrueとなります。比較演算子は記号で表され、いくつか種類があるので、以下の図にまとめておきますね。

演算子の記号 例文 結果
= = A = = B 左右の値が等しいときTrue
! = A ! = B 左右の値が等しくないときTrue
< A < B Aの値がBの値より小さいときTrue
< = A < = B Aの値がBの値より小さいとき、
または値が等しいときTrue
> A > B Aの値がBの値より大きいときTrue
> = A > = B Aの値がBの値より大きいとき、
または値が等しいときTrue

イコールの位置を間違えて「=>」などとすると比較演算子として認識されないので、注意してください。下にそれぞれの比較演算子を使った例文も紹介します。

演算子 結果
6 + 2 == 8 True
2 ✳︎ 4 ! = 4 True
8 / 4 < 5 True
2 > 6 False
4 + 2 >= 6 True
2 ✳︎ 5 <= 9 False

以上の例文では、比較演算子で計算式を比較しています。計算を途中に入れて比較演算をすることが良くあるので、覚えておいてくださいね。

elseの使い方

if文と組み合わされる文法の中でも重要な文法の1つがelse文です。

「else」を使うことで「もし◯◯ならば××する、そうでなければ△△する」と分岐させることができます。ほとんど場合、else文はif文の最後に記述され、if文の条件がFalseの場合に実行されます。

elifの使い方

if文で条件が成り立たなかった場合にさらに条件分岐させたい場合は、elif文を使います。

「elif」を使うと、「もし◯◯ならば××する、そうでなくて□□ならば■■する、そうでなければ…」と処理できます。「elif」は何個でも使うことができますが、最初に条件があてはまったものが実行されます。

比較演算子を使ったサンプルコード

それでは、これまで解説してきた比較演算子、「elif」や「else」を使って、先ほど例に出した答案採点プログラムのコードを書いてみましょう。

分岐である「elif」「else」を使うと複数行でコードを記述できます。次の例を見てください。

score = 50

if score == 100:
    print(‘満点です’)
elif 70 <= score and score <= 90:
    print(‘合格水準に達しています’)
else:
    print(‘もう少し頑張りましょう’)

〇実行結果
もう少し頑張りましょう

100点以上で「満点です」、90点から70点を取っていた場合は「合格水準に達しています」、それ以外の場合60点以下の場合は「もう少し頑張りましょう」と表示されるプログラムです。

上記の場合は、点数を入れた変数「 SCORE 」の値が「 50 」なので「もう少し頑張りましょう」が表示されます。「 SCORE 」に「 100 」を入れると「満点です」、「 90 」~「 70 」の値にすると「もう少し頑張りましょう」が表示されることを確認してみてください。

今回紹介したコードで使用している「 and 」は論理演算子で、2つ以上の演算子を組み合わせる場合に使われます。詳しくは次で説明します。

論理演算子について

論理演算子を使うと、複数の条件式を組み合わせて使うことができます。論理演算子には論理和「 or 」、論理積「 and 」、否定「 not 」があります。

演算子の文字 例文 結果
and A and B AとBがともにTrueならTrue、
それ以外はFalse
or A or B Bのどちらか一方でもTrueならTrue、
どちらもFalseならFalse
not not A AがTrueならFalse、AがFalseならTrue

噛み砕いて説明すると、「 and 」は両方がTrueの場合に実行、「 or 」はどちらかの条件がTrueの場合に実行、「 not 」は条件が満たされなかった場合に実行されます。

2つ以上組み合わせるので少しややこしいですが、1つずつ見ていけば分かりやすいので、混乱したら前に戻って確認してみましょう。

論理演算子を使った例文も紹介しておきます。

A=20とした場合
条件式 結果
A > 30 and A < 25 False
A < 30 or A > 30 True
not A < 15 True

「A=20」とした時の結果を右の列に表示しています。「 and 」を使った演算式は「A>30」がFalseのため結果がFalse、「 or 」は「A<30」がTrueのためTrue、「 not 」は「A<15」がFalseとなるためTrueになります。

「 not 」を使った演算式が少しややこしいので、気をつけてくださいね。

論理演算子を使ったサンプルコード

最後に論理演算子の使用例を示しておくので、参考にしてみてください。

  1. 論理演算子「and」を使ったコード
    A = 20
    if 10 < = A and A <= 30:
         print(‘Aは10以上30以下です’)

    ■実行結果
    Aは10以上30以下です上記のコードは 「A」の値が10以上30以下の場合に「Aは10以上30以下です」と表示させるコードです。

    いま、「A」の値は「20」で「10<=A」と「A<=30」のどちらもTrueなので、「Aは10以上30以下です」と表示されます。

    どちらもTrueでないと実行されないのが論理演算子「 and 」です。

  2. 論理演算子「or」を使ったコード
    A = 60
    if 10 > A or A > 30:
       print(‘Aは10未満または30より大きいです’)

    実行結果
    Aは10未満または30より大きいです上記のコードは「A」の値が10未満または30より大きい場合に「Aは10未満または30より大きいです」と表示するコードです。

    いま、「A」の値は「60」で「10>A」はFalseですが、「A>30」がTrueのため「Aは10未満または30より大きいです」と表示されます。

    どちらか一方でもTrueであれば実行されるのが論理演算子「 or 」です。

     

  3. 論理演算子「not」を使ったコード
    A = 55
    if not A == 77:
        print(‘Aは77ではありません’)

    ■実行結果
    Aは77ではありません上記のコードは「A」の値が「77」ではない場合に「Aは77ではありません」と表示するコードです。

    いま、「A」の値は「55」で「A==77」がFalseになるため、「 not A==77」はTrueになり「Aは77ではありません」と表示されます。

    条件式がFalseの場合に実行されるのが論理演算子に「 not 」です。

Pythonの個別指導なら『Tech Teacher』

引用元:Tech Teacher

このBlogを運営するTech Teacherは、Pythonを学習する社会人を対象に、初心者から挫折した人まで、一人ひとりの目的や学習状況にあわせた個別指導を行っています。

また、オンライン指導も選べるので、自宅でも対面でも受講できます。

一人ひとりに最適化された完全マンツーマン指導を提供

完全マンツーマン指導で着実に身につく!

Tech Teacherでは専任の教師が完全マンツーマン指導を行います。
学習状況や目標をしっかり把握した教師が、生徒様のご要望もふまえながら最適なオーダーメイドの指導をご提供します。

お仕事と両立しながら続けられる!

Tech Teacherなら、受講日時や回数を生徒様のご都合に合わせて柔軟に調整することができます。
そのため、お仕事との両立がしやすく、プログラミング学習を継続的に学習することができます。忙しい合間にプログラミングを学びたいという方におすすめです。

授業料は受けた分だけ!

Tech Teacherでは、生徒様が受けた授業の時間分だけ後払いで請求させていただきます。そのため、気軽にプログラミングの学習を始めることができます

以下のボタンからさらに詳しい情報をご覧いただけます。

まとめ

if文は比較演算子や論理演算子のような難しい言葉がでてくるため、学習段階でつまずく人が多いのも事実です。

基礎をきちんと理解しておけば実は難しいことではなく、応用も効くので、ぜひこの記事を参考に学習を進めてみてください。