はじめに
ここでは、Python初心者向けに「制御文」について解説していきます。
Python3系の使用を想定しています。
条件分岐
条件によって処理を分けたい場合に使います。
if文
if
に続く条件式がTrue
なら、処理が実行されます。if 条件式:
と書いた次の行は、半角スペース4つ分インデントして書き始めます。
x=2y=2ifx==y:print('xとyは等しい。')
この例では、x == y
はTrue
となるので、xとyは等しい。
と出力されます。
また、else
を入れると、if
に続く条件式の判定がTrue
でなかった場合の処理を記述できます。
x=2y=3ifx==y:print('xとyは等しい。')else:print('xとyは等しくない。')
さらに、elif
を入れると、それより上の条件式の判定が全てFalse
で、elif
に続く条件式がTrue
だったときの処理を記述できます(elif
はelse if
の略です)。
x=2y=3ifx==y:print('xとyは等しい。')elifx==2:print('xとyは等しくないが、xは2である。')else:print('xとyは等しくなく、xは2ではない。')ifx==2andx!=y:# 条件式にandを使うこともできる。
print('xは2であり、xとyは等しくない。')elifx==yory==4:# 条件式にorを使うこともできる。
print('xとyは等しい、またはyは4である。')else:print('それ以外。')ifx==2:ify==3:# 入れ子にすることもできるが、この例の場合は可読性が下がるので、非推奨。
print('xは2であり、yは3である。')elifx==y:print('xとyは2である。')else:print('xは2であり、yは2でも3でもない。')elifx==3:print('xは3である。')else:print('xは2でも3でもない。')
ちなみに、Pythonにはswitch文はありません。
反復処理
同じ処理を複数回繰り返す時に使います。
for文
一定回数だけ同じ処理を繰り返す時に使います。for 変数 in イテラブル:
と書いた次の行は、半角スペース4つ分インデントして書き始めます。
nums=[1,2,3,4,5]fornuminnums:print(num)fori,numinenumerate(nums):print(i,num)foriinrange(len(nums)):# あまり使われない。
print(nums[i])dict_human={'身長':200,'体重':100,'BMI':25}forkeyindict_human.keys():# 辞書のキーを取り出す。
print(key)forvalueindict_human.values():# 辞書の値を取り出す。
print(value)forkey,valueindict_human.items():# 辞書とキーの値の組み合わせを取り出す。
print(key,value)for_inrange(10):# forの後の変数を処理の記述で使わない(実行回数のみ指定したい)場合は、'_'でも可。
print('実行しました。')
break
を使うと、反復処理を中止することができます。if
と組み合わせて、特定の条件が成立した時に処理を中止するといったときに使うことが多いです。
nums=[1,2,3,4,5]fornuminnums:ifnum==3:break# numが3になった時点で処理は中止する(2までしか出力されない)。
print(num)
continue
を使うと、反復処理をスキップすることができます。こちらもif
と組み合わせて使うことが多いです。
nums=[1,2,3,4,5]fornuminnums:ifnum==3:continue# numが3のときだけ出力処理をしない(3以外が出力される)。
print(num)
while文
ある条件が成立する間のみ反復処理をする場合に使います。while 条件式:
と書いた次の行は、半角スペース4つ分インデントして書き始めます。
num=1whilenum<5:print(num)num+=1num=1whilenum<5:num+=1print(num)
while
の中も上から下へ順番に処理が実行されるため、書き方によって実行結果が変わる場合があります。
変数の値の更新を書き忘れると、処理が無限回数繰り返される(無限ループとなる)ので注意が必要です。
num=1# while num < 5:
# print(num)
# while True:
# print(num)
反復回数が決まっている場合はfor
を、反復回数が決まっていない場合はwhile
を使うようにすると良いです。
まとめ
ここでは、Pythonの制御文として、条件分岐の「if」、反復処理の「for」および「while」を紹介しました。
プログラミングの中心とも言える構文なので、実際に使いながら身につけていくと良いでしょう。