目次
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 < y | xはyより小さい |
x > y | xはyより大きい |
x == y | xはy等しい |
x != y | xはy等しくない |
x >= y | xはy以上 |
x <= y | xは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
とすることでx
がs
内の要素であれば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') | |
range | 10 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つの値の判定値 |
---|---|---|---|
and | x and y | xもyもTrueならばTrue, それ以外はFalse | True and True → True True and False → False False and True → False False and False → False |
or | x or y | xがTrueならばTrue, Falseならばyの評価結果 | True or True → True True or False → True False or True → True False or False → False |
not | not x | xがTrueならばFalse, FalseならばTrue | not True → False not False → True |
別のページに詳しく記載しました。
条件式にはbool型以外も使用できる
ブール演算のコンテキストや、式が制御フローの文で使われる際には、次の値は偽だと解釈されます:
https://docs.python.org/ja/3/reference/expressions.html#boolean-operations
False 、 None 、すべての型における数値の
0、空の文字列、空のコンテナ
(文字列、タプル、リスト、辞書、集合、凍結集合など)。
それ以外の値は真だと解釈されます。
「で、何が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