本記事では、Pythonの制御構文について紹介していきます。
基本的にプログラムは上から下へと実行されます。
しかし、制御構文を使うと、プログラムのある部分を繰り返し実行したり、また、条件に応じて処理を分岐することができるようになります。
つまり、制御構文を使うとプログラムの流れを制御することができます。
Contents
制御構文(if文)
Pythonで条件分岐のプログラムを書くには「if構文」を記述します。
if 条件:
# ここに真のときの処理
else:
# ここに偽のときの処理
条件に応じて処理を分岐しますが、真のときと、偽のときのそれぞれの処理はインデント(字下げ)をして記述します。
インデントには、半角スペース4個分を指定することが推奨されています。
偶数・奇数判定プログラム
if構文を利用して偶数と奇数を判定する簡単なプログラムを以下のように作ることができます。
偶数は2で割り切れる数で、奇数は2で割り切れない数なので、割り算の余り演算の「%」を使って、値を2で割って余りが0ならば偶数、1ならば奇数という判定を行います。
1行目は、ユーザーから数値を入力してもらい、int()で文字列の値を整数に変換してnumに代入します。そして、2行目以降で、if構文を使ってnumの値が偶数か奇数かを判定し結果を表示します。
BMI判定プログラム
if構文を使ってBMI判定を行うプログラムを以下のように作ることができます。
1行目で身長hと体重wを入力したデータを文字列からfloat()で数値に変換しhとwに代入します。
2行目でBMI値を計算し、その値を元に痩せ型、普通体重、肥満の判定を表示します。
制御構文(for文)
for文
for文を使ってリストの各要素を表示することができます。
1行目では、5つの名前の入ったリストを変数namesに代入します。
2行目以降は、変数namesに入っているリストの要素の値を1つずつ取り出して変数nameに代入します。forの繰り返し処理でnameの値を表示します。
zip関数
複数のリストから同時に要素を出力できるzip()関数について紹介します。
zip(drinks,fruits)によって各リストの要素が1つずつ取り出され、forの後のdrink、fruitに格納され出力結果を表示します。
enumerate関数
インデックスと要素のペアで取得するにはenumerate()関数を使います。
内包表記
内包表記で5から9までの整数が入ったリストを作成します。
内包表記の2つ目のnumは、for文でrangeから1つずつ取り出された要素が追加されます。内包表記の先頭のnumは、num_listの中に要素を追加します。
以下のプログラムは、for文でrangeから1つずつ取り出された要素がnumに追加され、その要素を「num*2」で2倍にして「num_list」というリストに追加します。
range関数
range()関数を用いることで繰り返す回数を取得することができます。
range(10)とした場合は、カウントを終了する値を指定したことになるため、0から1ずつ10までカウントアップします。
forの繰り返し処理の最初で0を返し、処理を繰り返す度に1、2、3・・を順に返します。
メモ
range(start, stop, step)
start:カウント開始値
stop:カウント終了値
step:カウントアップする際のステップ数。省略すると1ずつカウントアップ
break
for文の繰り返し処理から抜けるには、繰り返しの途中で「break」を実行することで抜けることができます。
i=5のとき、5行目のprint(i)で表示されずに「終了」が出力されて「break」で繰り返し処理を抜けます。
continue
繰り返し処理の途中で、繰り返し処理の先頭(条件判定)に戻る「continue」を紹介します。
繰り返し処理の途中で、特定の処理を実行することができます。
例えば、偶数のときだけ出力結果を表示せず奇数の場合に表示するプログラムを作ってみます。
まとめ
今回は、Pythonの制御構文について紹介しました。
制御構文には、一定のデータが与えられている間、繰り返し実行する構文などがあります。
if文、for文はプログラムに必要になるため基本的な使い方をしっかり押さえておきましょう。