if文
条件分岐の基本の構文です。
if, elif, elseで条件分岐を作れます。elifは0個以上使えます。
elseは最後の条件として使います。elseは必須ではありません。
if文の条件式がTrueの場合は実行文のコードが実行されます。
if, elif, else文は : (ダブルコロン)で区切り、実行文のブロックはインデントします。
数値比較の例
n=12;
if n == 12: print('nは12です')
if n < 0:
print('nは0未満です')
elif n <= 10:
print('nは0以上10以下です')
else:
print('nは10より大きいです')
【結果】
nは12です
nは10より大きいです
実行文が1つの場合は、1行で書くことも可能です。
if n == 12: print('nは12です')
複数の数値比較を1つにまとめて表現できます。
n =12;
m = -18;
if n < 5 < m < 20 :
print('{} < 5 < {} < 20 は正しい式です'.format(n,m))
elif m < 5 < n < 20:
print('{} < 5 < {} < 20 は正しい式です'.format(m,n))
【結果】
-18 < 5 < 12 < 20 は正しい式です
文字列比較の例
文字列を == と != を使って比較してみます。
結果からわかる通り大文字と小文字の比較は一致しません。
if 'りんご' == 'りんご':
print("'りんご' == 'りんご'は正しいです")
if 'ABC' != 'abc':
print("'ABC' == 'abc'は不正です")
【結果】
'りんご' == 'りんご'は正しいです
'ABC' == 'abc'は不正です
リスト、ディクショナリ、タプル、Set比較
リストの==での比較は1つ1つの要素が完全一致であるときだけ成立します。ディクショナリ、タプル、Setも同様です。
また、要素が同じでも型が違う場合の==比較は成立しません。
#リスト比較
if [1, 2, 3] == [1, 2, 3]:
print("No.1 True")
if [1, 2, 3] == [1, 2]:
print("No.2 True")
#ディクショナリ比較
if {1:'I', 2:'II', 3:'Ⅲ'} == {1:'I', 2:'II', 3:'Ⅲ'}:
print("No.3 True")
if {1:'I', 2:'II', 3:'Ⅲ'} == {1:'I', 2:'II'}:
print("No.4 True")
#タプル比較
if (1, 2, 3) == (1, 2, 3):
print("No.5 True")
if (1, 2, 3) == (1, 2):
print("No.6 True")
#Set比較
if {1, 2, 3} == {1, 2, 3}:
print("No.7 True")
if {1, 2, 3} == {1, 2}:
print("No.8 True")
#リストとSet比較
if [1, 2, 3] == {1, 2, 3}:
print("No.9 True")
【結果】
No.1 True
No.3 True
No.5 True
No.7 True
文字列検索(含まれる、含まれない)
inという演算子を使って文字列を検索できます。
str = 'an apple'
if 'pp' in str:
print("'pp'は'%s'に含まれています" % str)
if 'an a' in str:
print("'an a'は'%s'に含まれています" % str)
【結果】
'pp'は'an apple'に含まれています
'an a'は'an apple'に含まれています
要素の有無、キーの有無を調べる
inという演算子を使って要素やキーの有無を調べられます。
含まれない場合を調べたいときは not inを使います。
# 3があるかを調べる
if 3 in [1, 2, 3]:
print("No.1 True")
# 4がないかを調べる
if 4 not in [1, 2, 3]:
print("No.2 True")
# キーが1の要素があるか調べる
if 1 in {1:'I', 2:'II', 3:'Ⅲ'}:
print("No.3 True")
【結果】
No.1 True
No.2 True
No.3 True
他の言語との違い
ある言語では、”条件を()で括る”、”処理を{}で区切る”、”elifをelse ifでかく”のようなルールがありますが、pythonにはありません。
そのため、見通しの良いコードになりやすいです。
pythonにはswitch文やcase文はないです。if-elif-elseを使って表現しましょう。
コメントを残す