プログラミング初心者のPython入門#14|条件分岐<for文>

スポンサーリンク
この記事でわかること

・Pythonにおけるfor文の処理構造

・whileとforの違い

・Pythonにおける「for ~ break」「for ~ continue」「for ~ else」の書き方

Pythonでfor文を書く

for文とは?

for文とは処理を繰り返す回数を指定して、ループ処理を実行するとき使うコードです。処理コードを書くときはif文やwhile文と同様に先頭に半角スペース4つのインデントを入力してコードを記述します。

また、ループ処理の回数を指定するときはrange()などのオブジェクトを使い、引数にループする回数を指定します。

Pythonにおけるfor文の処理構造

whileとforの違いは?

前回の記事で解説したwhile文とfor文の違いは、whileは理論式でFalseになったときループ処理を抜けます。一方でfor文はループする回数を指定し、指定回数の処理が完了したらループ処理を抜けます

while文の終了条件:理論式がFalse

for文の終了条件:指定した回数の処理を完了

for文の書き方

コードの書き方は、forの後に任意の変数名を書き、inの後にオブジェクトを書き:を付けます。改行して先頭に半角スペース4つのインデントを入れ、ステートメントを書きます。

for 変数名 in オブジェクト:
    処理A #半角スペース4つのインデントを入れる
インデント入れずにステートメント #for文の終了

オブジェクトにはrange(),zip(),enumerate()などの関数が使えます。

for文の記述例:range()

実際にforを使ってコードを書いてみます。

for文で実行した処理の回数をカウントするにはrange()を使います。ここでは、range()を使って処理を繰り返す回数を5回に指定し、実行結果を確認してみましょう。

#range()を使ったfor文の記述例
for a in range(5) :
    print(a)

コードを実行してみます。

0
1
2
3
4

for文の処理が5回実行されていることが確認できました。カウントは0から始まるので、最後の値は引数の値n-1になる点に注意です。

また、range()の引数をカンマで区切ってrange(開始値,回数)のように開始値を指定することも可能です。

#range()を使ったfor文の記述例
for a in range(2,5) :
    print(a)

コードを実行してみます。

2
3
4

先ほど説明したようにカウントは0から始まっているので、「2,3,4,5」ではなく「2,3,4」が表示されます。

for文の記述例:リスト

次はfor文を使って、リストから値を取り出した場合を見てみましょう。

リストfxlistから変数currencyに値を取り出してみます。

#リストから値を取り出すfor文の記述例
fxlist = ['usdjpy', 'eurjpy', 'gbpjpy', 'audjpy', 'chfjpy', 'cadjpy']
for currency in fxlist :
    print(currency)

コードを実行してみます。

usdjpy
eurjpy
gbpjpy
audjpy
chfjpy
cadjpy

リスト内の値が順番に取り出され、すべての値が取り出したところでfor文の処理が終了します。

Pythonでfor文を中断する:break

for文の途中で処理を中断したい場合は、while文などと同様にbreakを使います。終了と中断の違いは、終了は条件1を満たした場合にループ処理を抜けるのに対して、中断は条件1とは別に設定した中断条件に合致したとき、割り込み的に処理を終了させます。

Pythonにおけるfor~break文の処理構造

for文で値が一致したときに処理を中断する

先ほどのリストを使ったコードにbreakを追加してみましょう。

ここではリストから取り出す値がaudjpyだった場合中断することとします。

#for文にbreakを追加
fxlist = ['usdjpy', 'eurjpy', 'gbpjpy', 'audjpy', 'chfjpy', 'cadjpy']
for currency in fxlist :
    if currency == 'audjpy' :
        break
    print(currency)

コードを実行してみます。

usdjpy
eurjpy
gbpjpy

リストが左から順に取り出され、取り出す値がaudjpyになったので処理を中断しています。

Pythonでfor文の処理をスキップする:continue

breakはfor文を中断するのに対して、continue実行中の処理をスキップして処理を継続します。

Pythonにおけるfor~continue文の処理構造

for文で特定の値はスキップする

breakの説明で使ったコードをcontinueに変更してみましょう。

breakではaudjpyになるとき処理を中断したのに対して、continueではaudjpyをスキップして処理を継続させます。

#for文にcontinueを追加
fxlist = ['usdjpy', 'eurjpy', 'gbpjpy', 'audjpy', 'chfjpy', 'cadjpy']
for currency in fxlist :
    if currency == 'audjpy' :
        continue
    print(currency)

コードを実行します。

usdjpy
eurjpy
gbpjpy
chfjpy
cadjpy

audjpyがスキップされ、それ以外の値が取り出されました。

Pythonでfor文完了後に処理を加える:while ~ else

for文でもelseを使ってfor文の資料が完了した後に、別の処理を加えることが可能です。

また、下の図の様にbreakした場合はelseの処理は実行されません。continueの場合は、for文の処理が最後まで到達するため、elseの処理が実行されます。

Pythonにおけるfor~else文の処理構造

for文完了後にelseで処理を加える

continueの例にelseを追加してみましょう。

else:を書いて改行後、先頭に半角スペース4つのインデントを入れ、追加するステートメントを記述します。今回はfor文の処理が完了した後「完了」の表示を付け加えます。

#for文にelseを追加
fxlist = ['usdjpy', 'eurjpy', 'gbpjpy', 'audjpy', 'chfjpy', 'cadjpy']
for currency in fxlist :
    if currency == 'audjpy' :
        continue
    print(currency)
else :
    print("完了")

コードを実行してみます。

usdjpy
eurjpy
gbpjpy
chfjpy
cadjpy
完了

for文の処理の後に「完了」が付け加えられました。

今回のまとめ

・for文は指定回数の処理が完了するまでループする

・for文の処理を中断させるにはbreak

・for文の処理結果をスキップし、処理を継続するにはcontinue

・for文の処理が完了した後に別の処理を追加するにはelse

コメント

タイトルとURLをコピーしました