【Python】条件分岐する方法【if文の使い方】

Python

この記事では、Pythonで条件分岐する方法を解説します。

条件分岐とは、条件によって処理を分岐させることを言います。Pythonで条件分岐させるにはif文を使います。他のプログラミング言語で用いられるswitch文は、残念ながらPythonには存在しないので注意してください。

switch文の代用方法は以下を参考にしてください↓
【Python】switch文が無いので何かで代用しよう!【Python】switch文が無いので何かで代用しよう!

プログラミングにとって条件分岐は、繰り返し処理と並び使用頻度が高く、とても大切な処理の1つです。しっかり覚えていつでも使えるようにしておきましょう!

この記事で学べること
  • if文の使い方
  • 条件に使われる比較演算子ついて
  • 論理演算子
  • 条件式に指定できる値

if文の使い方

書式

if文は以下のように記述します。

条件式には、比較演算子やbool値を返す関数などを指定します。

if 条件式: 
    条件式がTrueの時に処理され、Falseの場合は無視される

サンプル

以下のコードは、vの値が0の時にprint関数が処理され、それ以外の値の場合はprint関数は無視されます。

v = 0

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

実行結果

vは0です

このように、if文を使うことで条件式の結果によって処理を分岐させることができます。

Falseだった時の処理を追加する[if-else文]

if文にelseを追加することで、条件式がFalseだった場合の処理を定義できます。

書き方

if-else文は以下のように記述します。

if 条件式: 
    条件式がTrueの時に処理される(Falseの場合は処理されない)
else: 
    条件式がFalseの時に処理される(Trueの場合は処理されない)

サンプル

先ほどのサンプルコードに、条件式がFalseの時の処理を追加してみます。

v = 0

if v == 0:
    print('vは0です')
else:
    print('vは0以外です')

実行結果

 # v = 0 の場合
vは0です

# vが0以外の場合
vは0以外です

新たな条件と処理を追加する[if-elif文]

elifを追加することで条件と処理を新たに追加できます。elifはいくつでも定義することができますが、どこかの条件式がTrueになり処理されると、それ以降の条件式は評価されないので定義する順番には注意しましょう!

書式

if-elif文は以下のように記述します。

if 条件式1: 
    条件式1がTrueの時に処理される 
elif 条件式2: 
    条件式1がFalseで条件式2がTrueの時に処理される

サンプル

以下のコードは、elifを使ってvの値が1の時の処理を追加しました。

v = 0

if v == 0:
    print('vは0です')
elif v == 1:
    print('vは1です')

実行結果

 # v = 0 の場合
vは0です

# v = 1の場合
vは1です

if-elif-else文

elifelseを同時に使うことで、より複雑な条件分岐を定義することができます。

書式

if-elif-else文は、以下のように記述します。

if 条件式1:
    条件式1がTrueの時に処理される
elif 条件式2:
    条件式1がFalseで条件式2がTrueの時に処理される
else:
    どこにも処理されなかった場合に処理される

サンプル

先ほどのサンプルコードにelseを追加してみます。

v = 0

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

実行結果

 # v = 0 の場合
vは0です

# vが1の場合
vは1です

# vが0,1以外の場合
vは0,1以外です

条件に使われる比較演算子一覧

比較演算子とは、値を比べるための演算子です。左辺と右辺の値を比べて、真ならTrue、偽ならFalseを返します。

比較演算子一覧

Pythonで使用する比較演算子は、以下のようなものがあります。

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

基本的な比較演算子

xとyの値を書き換えて、結果がどのように変わるか確かめてみましょう。

x = 1
y = 1

print(x == y) # True
print(x != y) # False
print(x > y)  # False
print(x >= y) # True
print(x < y)  # False
print(x <= y) # True

in演算子

in演算子は、リストやタプルの中に指定した要素が入っているかどうかを判別できます。

x = 1
y = [1, 2, 3]

print(x in y)     # True
print(x not in y) # False

文字列にも使うことができます。

s = 'あいうえお'

print('あ' in s)     
# True

print('あ' not in s)
 # False

is演算子

is演算子は、同一のオブジェクトを参照しているかどうかを判別できます。

x = [1, 2, 3]
y = x
z = [1, 2, 3]

print(x is y) 
# True

print(x is z) 
# False

print(x is not z)
# True

「x is y」は同じオブジェクトを参照しているのでTrueとなります。「x  is z」は値は同じですが、違うオブジェクトを参照しているのでFalseとなります。「x is not z」はnotが付いているので評価が逆転してTrueが出力されます。

また、is演算子はNone判定にも使われます。

value = None

print(value is None)
# True

print(value is not None)
# False

論理演算子を使って条件を繋げる

論理演算子のandorを使うことで、複数の比較演算子を組み合わせることができます。また、notを使うことで否定を扱うことができます。

and(かつ)

andは、繋げた全ての式がTrueならばTrueとなります。

書式

複数の条件式をandで繋げます。

条件式1 and 条件式2 

サンプル

以下のコードは「5 <= v」と「v < 10」をandで繋いでいます。この2つの条件式がTrueの時にTrueが返されます。

v = 6

b = 5 <= v and v < 10

print(b)

実行結果

True

or(または)

orは、繋げた式の中で1つでもTrueがあればTrueになります。

書式

複数の条件式をorで繋げます。

条件式1 or 条件式2

サンプル

以下のコードは「5 < v」と「v <= 10」をorで繋いでいます。2つの条件式のうちどちらか1つでもTrueならばTrueが返されます。

v = 4

b = v < 5 or 10 <= v

print(b)
# True

実行結果

True

not(でない)

notは、TrueならばFalse、FalseならばTrueとなります。

書き方

条件式の前にnotを付けることで、評価を逆転させることができます。

not 条件式

サンプル

以下のコードは「0 == 1」にnotを付けて評価を逆転させています。

print(not 0 == 1)

実行結果

True

比較の連鎖

比較はいくらでも連鎖することができます。
例えば、以下のように記述できます。

1 <= v < 10

この式は「1 <= v and v < 10」と同等で、vが「1以上かつ、10未満」の場合にTrueとなります。

比較演算子以外で条件式を指定する

if文の条件式に指定できるのは比較演算子だけではありません。数値や文字列も条件式に指定できます。

数値

0がFalse、それ以外の値がTrueとして扱われます。

if 0:
    print('0 実行')

if 1:
    print('1 実行')

if -1:
    print('-1 実行')

実行結果

1 実行
-1 実行

文字列

空がFalse、それ以外がTrueとして扱われます。

if '':
    print('空 実行')

if 'a':
    print('a 実行')

if '123':
    print('123 実行')

実行結果

a 実行
123 実行

配列(リスト、タプルなど)

空だとFalse、それ以外がTrueとして扱われます。

if []:
    print('空 実行')

if [1]:
    print('[1] 実行')

if ['a', 'b', 'c']:
    print("['a', 'b', 'c'] 実行")

実行結果

[1] 実行
['a', 'b', 'c'] 実行

None

Falseとして扱われます。Trueとして評価して欲しい場合はnotを付けます。

if None:
    print('None 実行')

if not None:
    print('not None 実行')

実行結果

not None 実行

関数

関数も指定することができます。

以下のコードは、isinstance関数を使って型を調べています。

v = ''

if isinstance(v, int):
    print('vはint型です')
elif isinstance(v, str):
    print('vはstr型です')

実行結果

vはstr型です

まとめ

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

今回のおさらい

  • if文の使い方 = 『if-elif-else』
  • 条件に使われる比較演算子ついて = 『左辺と右辺の値を比べる(x == yなど)』
  • 論理演算子 = 『and(かつ)、or(または)、not(でない)』

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

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

タイトルとURLをコピーしました