[Python]if文~条件式で使える演算子・値~

python-if

Version

Python 3.9.0

if文の構文

単純なif文

if 条件式:
    条件式がTrueの場合に実行されるコード

サンプルコード

x = 100
if x > 10:
    print('xは10より大きい')

実行結果

xは10より大きい

elseを伴うif文

if 条件式:
    条件式がTrueの場合に実行されるコード
else:
    条件式がFalseの場合に実行されるコード

サンプルコード

x = 5
if x > 10:
    print('xは10より大きい')
else:
    print('xは10以下')

実行結果

xは10以下

elifを伴うif文

Pythonでのelifは他の言語でのelse ifに相当します。
Pythonではswitch, case文は使用できないので複数条件はelifを使用します。

if 条件式A:
    条件式AがTrueの場合に実行されるコード
elif 条件式B:
    上の条件がすべてFalseで条件式BがTrueの場合に実行されるコード
elif 条件式C:
    上の条件がすべてFalseで条件式CがTrueの場合に実行されるコード
# 以降任意の数だけelifを定義できる

サンプルコード

def judge(x):
    if x > 10:
        print('xは10より大きい')
    elif x == 10:
        print('xは10')
    elif x < 10:
        print('xは10より小さい')


judge(100)
judge(10)
judge(1)

実行結果

xは10より大きい
xは10
xは10より小さい

条件式

条件式で使用できる演算子や値を紹介します。

比較演算子

演算子説明
x < yxはyより小さい
x > yxはyより大きい
x == yxはy等しい
x != yxはy等しくない
x >= yxはy以上
x <= yxはy以下

x < y

xはyより小さい

サンプルコード
def less_than(x, y):
    if x < y:
        print(f'{x} < {y} → True')
    else:
        print(f'{x} < {y} → False')


less_than(x=9, y=10)
less_than(x=10, y=10)
less_than(x=11, y=10)
実行結果
9 < 10 → True
10 < 10 → False
11 < 10 → False

x > y

xはyより大きい

サンプルコード
def greater_than(x, y):
    if x > y:
        print(f'{x} > {y} → True')
    else:
        print(f'{x} > {y} → False')


greater_than(x=9, y=10)
greater_than(x=10, y=10)
greater_than(x=11, y=10)
実行結果
9 > 10 → False
10 > 10 → False
11 > 10 → True

x == y

xはy等しい

サンプルコード
def equal(x, y):
    if x == y:
        print(f'{x} == {y} → True')
    else:
        print(f'{x} == {y} → False')


equal(x=9, y=10)
equal(x=10, y=10)
equal(x=11, y=10)
実行結果
9 == 10 → False
10 == 10 → True
11 == 10 → False

x != y

xはy等しくない

サンプルコード
def not_equal(x, y):
    if x != y:
        print(f'{x} != {y} → True')
    else:
        print(f'{x} != {y} → False')


not_equal(x=9, y=10)
not_equal(x=10, y=10)
not_equal(x=11, y=10)
実行結果
9 != 10 → True
10 != 10 → False
11 != 10 → True

x >= y

xはy以上

サンプルコード
def greater_than_or_equal(x, y):
    if x >= y:
        print(f'{x} >= {y} → True')
    else:
        print(f'{x} >= {y} → False')


greater_than_or_equal(x=9, y=10)
greater_than_or_equal(x=10, y=10)
greater_than_or_equal(x=11, y=10)
実行結果
9 >= 10 → False
10 >= 10 → True
11 >= 10 → True

x <= y

xはy以下

サンプルコード
def less_than_or_equal(x, y):
    if x <= y:
        print(f'{x} <= {y} → True')
    else:
        print(f'{x} <= {y} → False')


less_than_or_equal(x=9, y=10)
less_than_or_equal(x=10, y=10)
less_than_or_equal(x=11, y=10)
実行結果
9 <= 10 → True
10 <= 10 → True
11 <= 10 → False

10 < x < 100みたいな書き方もできる

サンプルコード
def between10_and_100(x):
    if 10 < x < 100:
        print(f'10 < {x} < 100 → True')
    else:
        print(f'10 < {x} < 100 → False')


between10_and_100(x=5)
between10_and_100(x=30)
between10_and_100(x=150)
実行結果
10 < 5 < 100 → False
10 < 30 < 100 → True
10 < 150 < 100 → False

所属検査演算(in) → 含まれるか?の確認

x in sとすることでxs内の要素であればTrue、そうでなければFalseを返します。

inを使用できる型

すべての組み込みのシーケンス型と集合型に加えて、辞書も in を辞書が与えられたキーを持っているかを調べる演算子としてサポートしています。

https://docs.python.org/ja/3/reference/expressions.html#membership-test-operations
代表的な型
サンプルコード
リスト(list)'a' in ['a', 'b', 'c']
タプル(tuple)'a' in ('a', 'b', 'c')
range10 in range(1, 20)
文字列(str)'a' in 'abc'
バイト(bytes)b'a' in b'abc'
集合(set)'a' in {'a', 'b', 'c'}
辞書(dict)'a' in {'a': 'あ', 'b': 'い', 'c': 'う'}キー値が含まれるかを判定する

同一性の比較演算子is → 同じオブジェクトか?

別のページに詳しく記載しました。

ブール演算子 → and, or, not

演算子意味合い2つの値の判定値
andx and yxもyもTrueならばTrue,
それ以外はFalse
True and True → True
True and False → False
False and True → False
False and False → False
orx or yxがTrueならばTrue,
Falseならばyの評価結果
True or True → True
True or False → True
False or True → True
False or False → False
notnot xxがTrueならばFalse,
FalseならばTrue
not True → False
not False → True

別のページに詳しく記載しました。

条件式にはbool型以外も使用できる

ブール演算のコンテキストや、式が制御フローの文で使われる際には、次の値は偽だと解釈されます:
False 、 None 、すべての型における数値の
0、空の文字列、空のコンテナ
(文字列、タプル、リスト、辞書、集合、凍結集合など)。
それ以外の値は真だと解釈されます。

https://docs.python.org/ja/3/reference/expressions.html#boolean-operations

「で、何がTrueなの?Falseなの?」
↓まとめました

こんな書き方もできる v2 = v1 or 'Python'

v1 = ""
v2 = v1 or 'Python'
print(v2)

実行結果

Python

参照

https://docs.python.org/ja/3/reference/compound_stmts.html#the-if-statement

コメントを残す

メールアドレスが公開されることはありません。