ノンプログラマーのためのPython学習サイト

Python if文の使い方|条件分岐の基礎〜応用まで

困っている人

  • if文の基本を知りたい
  • if文の具体的な使い方を知りたい
  • if文の応用的な使い方も教えてほしい
この記事で解決できること
  1. if文の基礎が分かる
  2. if文の具体的な使い方(if〜elif〜else)が分かる
  3. if文の応用的な使い方(and・or・not)が分かる

Pytohn|if文とは

if文とは、条件分岐に使用する構文のことです。

ifは英語で「もし〇〇なら」という意味で使用しますがPythonでも同じです。

「もし〇〇なら」の〇〇を記述し、その判定結果(条件が成立しているか)によって、処理を分岐させることができます。

Python|if文の基本

if文の基本は以下のとおりです。[B.条件式が成立した時の処理]はインデント(半角スペース×4)を空けて記述してください。

if [A.条件式]:

[B.条件式が成立した時の処理]

  • [A.条件式]を判定し、成立した時は[B.条件式が成立した時の処理]を実行します。
  • 一方、[A.条件式]を判定し、成立しなかった時は[B.条件式が成立した時の処理]はスキップします。

Python|if文の具体例

xの値が10の時、「xの値は10」と出力するコードを実行

x=10
if x==10: 
    print('xの値は10')
  1. xに10を代入
  2. 条件式(x==10)を判定します→成立
  3. 成立した時は「xの値は10」と出力します
  • 「x = 10」は、xに10を代入するという意味です
  • 「x == 10」は、xは10と等しいという意味です
  • Python では代入の符号(=)と条件式の符号(==)はそれぞれ別の意味を持っています

 

Python|比較演算子

条件式の符号(==)のような、値を比較する演算子のことを比較演算子といいます。Pythonでよく使用する比較演算子は次のとおりです。

比較演算子 意味
> 左よりも右の方が小さい
< 左よりも右の方が大きい
== 左と右は等しい
!= 左と右は等しくない
>= 左よりも右の方が小さいか、等しい
<= 左よりも右の方が大きいか、等しい

Python|if文 〜 else文の基本

else文を使うと、条件式が成立しなかった時の処理を実行できます。

if [A.条件式]:

[B.条件式が成立した時の処理]

else:

[C.条件式が成立しなかった時の処理]

  • [A.条件式]を判定し、成立した時は[B.条件式が成立した時の処理]を実行します。
  • 一方、[A.条件式]を判定し、成立しなかった時は[C.条件式が成立した時の処理]を実行します。

Python|if文 〜 else文の具体例

xの値が10の時「xの値は10」と出力し、それ以外は「xの値は10以外」と出力するコードを実行

x=20
if x==10:
    print('xの値は10')
else:
    print('xの値は10以外')
  1. 変数名(x)に変数(20)を代入
  2. 条件式(x==10)を判定します→成立
  3. 成立した時は「xの値は10」と出力します
  4. 成立しなかった時は・・
  5. 「xの値は10以外」と出力します

Python|if文 〜 elif文 〜 else文の基本

elif文を使うと条件式を追加できるので、処理をさらに分岐させることができます。elif は 「else if」 の略称です。

if [A.条件式]:

 [B.条件式が成立した時の処理]

elif [C.条件式]:

[D.条件式が成立した時の処理]

else:

 [E.条件式が成立しなかった時の処理]

  • [A.条件式]を判定し、成立した時は[B.条件式が成立した時の処理]を実行します。
  • 一方、[A.条件式]を判定し、成立しなかった時は[C.条件式]に判定が移ります。成立した時は[D.条件式が成立した時の処理]を実行します。
  • [A.条件式][C.条件式]が両方とも成立しなかった時は、[E.条件式が成立しなかった時の処理]を実行します。

Python|if文 〜 elif文 〜 else文の具体例

xの値が10の時「xの値は10」と出力し、xの値が20の時「xの値は20」と出力し、それ以外の時は「xの値は10・20以外」と出力するコードを実行

x=20
if x==10:
    print('xの値は10')
elif x==20:
    print('xの値は20')
else:
    print('xの値は10・20以外')
  1. 変数名(x)に変数(20)を代入
  2. 条件式(x==10)を判定します
  3. 成立した時は「xの値は10」と出力させます
  4. 条件式(x==20)を判定します→成立
  5. 成立した時は「xの値は20」と出力します
  6. 成立しなかった時は・・
  7. 「xの値は10・20以外」と出力します

Python|if文 〜 if文 〜 else文の基本

if文の中にさらにif文を記述することで、2階層の条件分岐を実行できます。

if [A.条件式]:

if [B.条件式]:

[C.条件式が成立した時の処理]

else:

[D.条件式が成立しなかった時の処理]

else:

 [E.条件式が成立しなかった時の処理]

  • [A.条件式]を判定し、成立した時は[B.条件式]に判定が移ります
  • 一方、[A.条件式]が成立しなかった時は、[E.条件式が成立しなかった時の処理]を実行します
  • [A.条件式]かつ[B.条件式]が成立した時は、[C.条件式が成立した時の処理]を実行します
  • 一方、[B.条件式]が成立しなかった時は、[D.条件式が成立しなかった時の処理]を実行します

Python|if文 〜 if文 〜 else文の具体例

xの値が30の時「xの値は30」と出力し、xの値が10以上かつ30ではない時「xの値は10以上」と出力し、それ以外の時は「xの値は10より小さい」と出力するコードを実行

x=20
if x>=10:
    if x==30:
        print('xの値は30')
    else:
        print('xの値は10以上')
else:
    print('xの値は10より小さい')
  1. 変数名(x)に変数(20)を代入
  2. 条件式(x>=10)を判定します→成立
  3. 成立した時は、条件式(x==30)を判定します
  4. 成立した時は「xの値は30」と出力します
  5. 成立しなかった時は・・
  6. 「xの値は10以上」と出力します→成立
  7. 条件式(x>=10)が成立しなかった時は・・
  8. 「xの値は10より小さい」と出力します

Python|if文 + and演算子

if文にand演算子を組み合わせることで、複数の条件式で処理を分岐させることができます。

if [A.条件式] and [B.条件式]:

[C.条件式が成立した時の処理]

else:

[D.条件式が成立しなかった時の処理]

  • [A.条件式]と[B.条件式]の両方が成立した時、[C.条件式が成立した時の処理]を実行します。
  • 一方、[A.条件式]と[B.条件式]の両方が成立しなかった時は、[E.条件式が成立しなかった時の処理]を実行します。

Python|if文 + and演算子の具体例

xの値が10以上かつ30以下の時「xの値は10〜30の間」と出力し、それ以外の時は「xの値は10〜30の間以外」と出力するコードを実行

x=20
if x>=10 and x<=30:
    print('xの値は10〜30の間')
else:
    print('xの値は10〜30の間以外')
  1. 変数名(x)に変数(20)を代入
  2. 条件式(x>=10)と、条件式(x<=30)の両方が成立しているか判定します→成立
  3. 成立した時は「xの値は10〜30の間」と出力します
  4. 成立しなかった時は・・
  5. 「xの値は10〜30の間以外」と出力します
Python|論理演算子

論理演算子はブール演算子とも呼ばれ、if文の条件分岐において様々な条件式を記述する時に使用します。

論理演算子には以下の図の通り、and(論理積)or(論理和)not(否定)の3種類があります。

Python|if文 + or演算子

if文にor演算子を組み合わせることで、複数の条件式のうち少なくとも1つ以上の条件式が成立した時に、処理を実行することができます。

if [A.条件式] or [B.条件式]:

[C.条件式が成立した時の処理]

else:

[D.条件式が成立しなかった時の処理]

  • [A.条件式]あるいは、[B.条件式]のどちらか一方が成立した時、[C.条件式が成立した時の処理]を実行します
  • 一方、[A.条件式]と[B.条件式]がどちらも成立しなかった時は、[D.条件式が成立しなかった時の処理]を実行します。

Python|if文 + or演算子の具体例

xの値が10あるいは20の時「xの値は10、あるいは20」と出力し、それ以外の時は「xの値は10、20以外」と出力するコードを実行

x=20
if x==10 or x==20:
    print('xの値は10、あるいは20')
else:
    print('xの値は10、20以外')
  1. 変数名(x)に変数(20)を代入
  2. 条件式(x==10)と、条件式(x==20)がどちらか一方が成立しているか判定します→成立
  3. 成立した時は「xの値は10、あるいは20」と出力します
  4. 成立しなかった時は・・
  5. 「xの値は10、20以外」と出力します

Python|if文 + not演算子

if文にnot演算子を組み合わせることで、条件式が成立しなかった時(通常のif文とは反対)の処理を実行することができます

if not [A.条件式]:

[B.条件式が成立しなかった時の処理]

else :

[C.条件式が成立した時の処理]

  • [A.条件式]が成立した時、[B.条件式が成立しなかった時の処理]を実行します
  • 一方、[A.条件式]が成立した時は、[C.条件式が成立した時の処理]を実行します。

Python|if文 + not演算子の具体例

xの値が10ではない時「xの値は10以外」と出力し、それ以外の時は「xの値は10」と出力するコードを実行

x=20
if not x==10:
    print('xの値は10以外')
else:
    print('xの値は10')
  1. 変数名(x)に変数(20)を代入
  2. 条件式(x==10)を判定します→不成立
  3. 成立しなかった時は「xの値は10以外」と出力します
  4. 成立した時は・・
  5. 「xの値は10」と出力します

Python|if文のまとめ

if文では、条件式(比較演算子・論理演算子)を組み合わせることで、かなり自由度の高い条件分岐ができるようになります。

else文を使うことで際限なく処理を枝分かれすることもできるし、if文の中にさらにif文を記述することもできるので、どんな複雑な条件式でも対応可能です。if文はよく使う構文なので、基本をしっかりマスターしてください。

1点注意したいのは、同等条件(「==」)を「=」と区別することです。Pythonでは「=」は代入という意味なので注意してください。