【Python入門】for文の使い方(フローチャートで図解)

for Python

for文の使い方です。
for文は、繰り返し処理をするときに使う制御構文で、ループを作ることができます。

制御構文とは

  • if文
  • while文
  • for文

pythonには3種類の制御構文があります。
プログラムはコードの順に処理を実行しますが、順番ではない進めかたをするために、プログラムの流れをかえる制御構文が用意されています。
if文は条件によって処理を分岐するときに、while文とfor文は処理を繰り返すときに使います。

while文とfor文の使い分け

繰り返し処理は、 while文とfor文のどちらを使っても同じ処理を記述することができます。
目安として次のように考えてください。

  • while文は、終了条件が決まっている場合
  • for文は、繰り返し処理の回数が決まっている場合

繰り返し(ループ)処理の使い方

繰り返し(ループ)処理の基本的なパターンは、次の4種類です。
順番に使い方を見ていきましょう。

  • for
  • for-break
  • for-continue
  • for-else

for文

for文でどのように処理が繰り返されるか、フローチャートを見てみましょう。

for
図1: for

図1では、<For>と[処理2]がfor文のループです。
<For>の値がn個とすると、[処理2]をn回繰り返して、(終了)します。

それでは、for文をpythonで書いてみましょう。

for
In [1]:  n = [0, 1, 2]
         for i in n:
             print(i) 
0
1
2

In [1]: nに[0, 1, 2]を入れる。
for文: nから順に要素を1個ずつ取り出し、変数iに入れる。
print関数: 変数iを表示する。

このfor文を図1に当てはめると、次のようになります。
<For>変数iにnの内容を1個入れる、[処理2] 変数iを表示する 。
3回繰り返す。

Pythonのfor文は、繰り返しの回数を指定するのではなく、for文に渡すリストの要素数が繰り返しの回数となります。

range関数で、連続する数を作ると、繰り返しの回数を指定しているように見えますが、要素の数が繰り返しの回数です。

range関数の詳しい使い方は、こちらをご覧ください。
>>【Python入門】range関数の使い方(for文で繰り返し処理)

for i in range(3):  # [0, 1, 2]
    print(i)
0
1
2


文字列の個数でも繰り返し処理ができます。

name = ['ポ', 'テ', 'サ', 'ラ']
for i in name:
    print(i) 
ポ
テ
サ
ラ

for-break文

break文は、forループを中断します。

break文は、if文と組み合わせて使う点に注意して、フローチャートを見てみましょう。

for-if-else-break
図2: for-break

図2では、for文のループの中に、if-else文があります。

if文の[処理3]にbreak文があるので、<条件式>がFalseを返すと、ループ処理が中断されて、(終了)します。

それでは、for-break文をpythonで書いてみましょう。

for i in range(5):  # [0, 1, 2, 3, 4]
    if i < 3:
        print(i)
    else:
        print('End')
        break
0
1
2
End 

変数iには0から順に入れられ、変数iが3のときにelseブロックが処理されます。

elseブロックでは、「End」を表示し、break文でforループを中断します。

if文の使い方は、関連情報の記事をご覧ください。

for-continue文

continue文は、forループで処理を中断し、次の処理を実行します。
continue文は、使いどころが思いつかないので、読み飛ばしてもらっても大丈夫です。

if-else文と比較しながら、フローチャートを見てみましょう。

for-if-continue
図3: for-continue

図3では、for文のループの中に、if文があります。
if文には、elseブロックがないので、 <条件式>が Falseのときは処理がありません。

if文の後にある[処理3]は、<条件式>がTrueでも、Falseでも実行されるフローですが、
・Trueの場合:  [処理2]を実行 、continue文で処理を中断し、<For>に戻る
・Falseの場合: [処理3]を実行

それでは、for-continue文をpythonで書いてみましょう。

for i in range(5):
    if i < 3:
        print('True:  ', i)
        continue

    print('False: ', i)
True:   0
True:   1
True:   2
False:  3
False:  4


for-[if-else]文の方が、同じ処理でも構造がわかりやすいです。

for-if-else
図4: for-[if-else]

図4では、for文のループの中に、if-else文があります。

<条件式>で処理が分岐するフローなので、
・Trueの場合:  [処理2]を実行
・Falseの場合: [処理3]を実行

for-[if-else]文をpythonで書いてみましょう。

for i in range(5):
    if i < 3:
        print('True:  ', i)
    else:
        print('False: ', i)
True:   0
True:   1
True:   2
False:  3
False:  4

for-else文

for-else文のelseブロックは、for文を正常に通り抜けたとき実行します。
・正常に通過: elseを実行
・break文で中断: elseを実行しない

if文のelseではない点に注意して、フローチャートを見てみましょう。

for-else
図5: for-else

図5では、for文のループをn回繰り返した後に、elseブロックがあります。
break文で、for文を中断したときは、elseブロックの[処理4]を実行しません。

else文を使うことで、for文の終わり方による場合分けができます。

for-else文をpythonで書いてみましょう。

for i in range(5):
    if i < 3:
        print(i)
    else:
        print('End', i)
        break
else:
    print(i)
0
1
2
End 3

変数iが3のとき、if文のelseブロックにあるbreak文で、forループが中断しています。

このコードでは、for文のelseブロックは実行されませんでした。

まとめ

  • for文を使って、繰り返し(ループ)処理を作ることができました
  • for文の処理を中断させるbreak文とcontinue文の使い方がわかりました

関連情報

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