if文

真偽値

if文では、条件に真偽値を必要とします。真偽値は、真または偽と判断されるもので、以下のように決まります。

  • 真: True 、非ゼロの数値、空でない文字列、空でないタプル、空でないリスト、空でない辞書、Noneでないオブジェクト
  • 偽: False 、ゼロ、空文字列、空のタプル、空のリスト、空の辞書、None

このように if文の条件では、全てのオブジェクトを書くことができます。

なお、真偽型という場合は、`True`または`False`の値を取る型を意味します。真偽型とブール型は、同じ意味になります。

if文の書き方

条件が真とみなされる場合(以降、True)、偽とみなされる場合(以降、False)よって行う処理を振り分けます。ifの後ろの条件がTrueの場合、それ以降のブロックが実行されます。

x = 10
if x == 10:
    print('xは10です')

xが10の場合、xは10ですと表示される処理が実行されます。

条件がFalseの時に実行される処理がある場合はelse:を利用します。また、条件が複数ある場合はelif:を利用します。

x = 10
if x == 10:
    print('xは10です')
elif x > 10:
    print('xは10より大きいです。')
else:
    print('xは10より小さいです。')

行末にコロン(:)を忘れないようにしましょう。

他言語経験者の方へ: Pythonにswich, case文はありません。必要な場合はif..elif..elif..を利用しましょう。

if文の書き方

  • [条件]True場合のみ[処理]を実行する。

    • [処理]を記述する前にインデント(半角空白)をつける。
    if 条件:
        処理
    
    • 等しいかは==を利用して比較する
    x = 5
    if x == 5:
        print(x)
    

    上記の場合、xは5なので、5と表示される。 ==のような右辺と左辺を比較する演算を比較演算と言います。

    詳しくは、比較演算を参照ください。

    • 複数の条件を組み合わせる場合はandorを利用します。
    x = 5
    if x > 3 and x < 8:
        print('xは3より大きく、8より小さい')
    

    詳しくは、ブール演算を参照ください。

    • リストの要素にxが含まれるかはif x in list:でチェックできます。
    a = [1, 2, 3]
    x = 2
    if x in a:
        print('ok')
    
    • 逆に含まれない場合はif x not in list:とinの前にnotをつけます。
    a = [1, 2, 3]
    x = 2
    if x not in a:
        print('ng')
    
    • 辞書のキーにxが含まれるかはif x in dict:でチェックできます。
    d = {'a':'Hello', 'b': 'World'}
    if 'a' in d:
        print(d['a'])
    
    • 値が存在しない状態を表すNoneか判定するにはif x is None:とisを利用します。
    x = None
    if x is None:
        print('xはNone')
    
    • 逆にNoneじゃないの場合はif x is not None:とisの後ろにnotをつけます。
    x = 'Hello'
    if x is not None:
        print('xはNoneじゃない')
    

メモ

書籍などで、条件が成り立つ場合を真(しん)、成り立たない場合を偽(ぎ)と表現する場合もあります。True, Falseの直訳のようです。