Python

【Python】if文を使った条件分岐の方法

この記事では、Pythonのif文の使い方を解説します。if文を使うことで条件分岐することができます。条件分岐とは、条件によって処理を分岐させることを言います。それでは、if文の使い方を見ていきましょう! ちなみに、他の言語でよく使われているswitch文はPythonにはありません。

【Python】switch文がないので何かで代用しよう!実はPythonにはswitch文がありません。なので、switch文のような処理をしたい場合には、Pythonに用意されているもので工夫して代用するしかありません。この記事では、Pythonでswitch文を代用する方法を紹介します。...

if文の書き方

if文は条件分岐を行うための構文で、if...elif...elseで表現されます。

if 条件式1:
    # 条件式1がTrueの時に処理され、Falseの場合は無視される
elif 条件式2:
    # 条件式1がFalseで、条件式2がTrueの時に処理される
elif 条件式3:
    # 条件式1,2がFalseで、条件式3がTrueの時に処理される
  ・
  ・
  ・
else:
    # 全ての条件式がFalseの時に処理される
  • elifで条件を何個でも追加できる
  • elifとelseは省略可能

Pythonではif文などの複合文のブロックはインデントで表現されます。

【Python】正しいインデントの仕方【複合文の書き方】 Pythonでは、if文や関数などの処理のまとまり(ブロック)を表現するのにインデントが用いられます。インデントとは、行の先頭に空白...

条件式

条件式には、比較演算子を使って「~以上だったら処理する」などの条件を指定したり、bool値を返す関数などを指定します。

比較演算子を使う

比較演算子とは、値を比較するための演算子です。比較演算子を用いて値を比較することで、真ならTrue、偽ならFalseを返します。

例えば、ある値が0の場合に何かしらの処理をしたいなら以下のように記述します。

num = 0

if num == 0:
    print('numは0です')

num == 0の部分でnumが0かどうか比較演算子==を使って比較しています。

比較演算子一覧

Pythonには、以下のような比較演算子が用意されています。

演算子 意味
x == y xとyが等しければTrue
x != y xとyが等しくなければTrue
x > y xがyよりも大きければTrue
x < y xがyよりも小さければTrue
x >= y xがyよりも大きいか等しければTrue
x <= y xがyよりも小さいか等しければTrue
x in y xがyに含まれていればTrue
x not in y xがyに含まれていなければTrue
x is y xとyが同一のオブジェクトならばTrue
x is not y xとyが同一のオブジェクトでなければTrue

詳しくは、以下の記事を参照してください。

【Python】データを比較する方法を解説【比較演算子】この記事では、Pythonでデータを比較する方法を解説します。データを比較するには「比較演算子」を使います。データを比較することでif文で条件分岐させたりすることができます。では、比較演算子の種類と使い方を見ていきましょう!...

関数を使う

bool値を返す関数を条件式に指定することもよくある。例えば、以下のコードはnum変数がint型のオブジェクトの場合、なんらかの処理をするif文です。

num = 0

if isinstance(num, int):
    print('numはint型です')

実行結果

numはint型です

複数の条件を組み合わせる

論理演算子を使うことで複数の条件を組み合わせた条件を指定することができます。

論理演算子 意味
x and y xを評価し、偽ならその結果を返す。それ以外の場合は、yを評価し、その結果を返す。
x or y xを評価し、真ならその結果を返す。それ以外の場合は、yを評価し、その結果を返す。

and(かつ)

andは、つなげた条件式が全てTrueの場合、Trueが返されます。例えば、「20以上かつ80未満」のときになんらかの処理を実行したい場合は以下のように記述します。

num = 21

if num >= 20 and num < 80:
    print('numは20以上80未満です')

実行結果

numは20以上かつ80未満です

or(または)

orは、つなげた条件式が1つでもTrueの場合、Trueが返されます。例えば、「20未満または80以上」のときになんらかの処理を実行したい場合は以下のように記述します。

num = 19

if num < 20 or num >= 80:
    print('numは20未満、または80以上です')

実行結果

numは20未満、または80以上です

ネストされたif文

if文ブロック内にif文を記述することで、より複雑な条件分岐をすることができます。

val = 6

if val % 2 == 0:
    if val >= 0:
        print('0以上の偶数です')
    else:
        print('0以下の偶数です')

実行結果

0以上の偶数です

上記のコードでは、1つ目のifで偶数かどうかを判別し、2つ目のifで0以上かどうかを判別しています。

このように、if文を重ねることで分岐を増やし、複雑な条件を処理することができます。

しかし、if文をネストしすぎると可読性が下がってしまいます。なので、論理演算子を使って複数の条件をつなげたり、セットとin演算子を使って条件をまとめることで記述をすっきりさせることができます!

num = 1

# numが0か1の場合、処理するif文を
if num == 0 or num == 1:
    print('numは0または1です')

# setとin演算子を使ってすっきり記述できる
if num in {0, 1}:
    print('numは0または1です')

三項演算子

三項演算子を使うことで、1行で条件分岐することができます。

変数 = (条件式がTrueの時に代入される値) if (条件式) else (条件式がFlaseの時に代入される値)

サンプル

試しに簡単なサンプルを見てみましょう!

val = 1

s = 'valは「1」です' if val == 1 else 'valは「1以外」です'
print(s)

実行結果

valは「1」です
【Python】三項演算子を使ってif文を1行で記述する この記事では、Pythonの三項演算子の使い方を解説します。三項演算子を使うことで、簡単な条件分岐を1行で表現することができ、と...

まとめ

この記事では、Pythonでif文を使う方法を解説しました。

今回のおさらい

以下のコードでわからない箇所があったら記事を見直してみましょう!

num = int(input('整数: '))

if num == 0: 
    print('numは0です')
elif num == 1:
    print('numは1です')
else:
    print('0,1以外です')

実行結果

整数: 0
numは0です

整数: 1
numは1です

整数: 3
0,1以外です

if文を使うとコードの幅が広がるので、色々試して遊んでみると面白いです。

それでは今回の内容はここまでです!ではまたどこかで〜( ・∀・)ノ

最短3か月でエンジニア転職『DMM WEBCAMP COMMIT』