Python超入門・繰り返し処理「for」「while」の書き方

プログラミングでもっともよく使う処理のひとつが、繰り返し処理です。
たとえば、リストを表示させたり、同じ計算を繰り返したりするときに使うのですが、今回はこれをPythonで実演してみましょう。

繰り返し処理を覚えると、いよいよプログラミングの学習も本格的になってきたという感じがしてきますので、少しテンションが上がるはずです。

また、繰り返し処理はコンピュータがもっとも得意とする仕事のひとつです。
人間がやると数時間かかってしまうようなルーチンワークも、繰り返し処理を駆使してプログラムを作ってしまえば数秒で片付いてしまったりします。

まさしくプログラミングの真骨頂ともいえるかもしれません。
それでは、Pythonでの繰り返し処理のやり方について見ていくことにしましょう。

Pythonの繰り返し処理には2種類ある

Pythonで繰り返し処理を作る方法は大きく分けて2種類あります。
文法も動作も全く違うので、状況によって使い分けることができます。

2種類のうちの一方が「for文」というもので、これは与えた配列などを順番に処理するときに使います。
そして、もう一方が「While文」で、こちらは条件に一致している状態のときに繰り返し処理を行うというものです。

それでは、2つの繰り返し処理の使い方を見ていくことにしましょう。

「for文」の使い方

for文にはいくつもの使い方があります。
配列を渡して繰り返し処理させるというものが主な使い方ですが、途中で処理を中断したり、カウントさせたりすることもできます。

ここで紹介するのは一部だけですが、プログラミング初心者であれば、これだけ覚えておけば十分役に立つというものだけをここでご紹介します。

for文の基本文法

for文による繰り返し処理の基本文法は以下のような感じです。
配列の要素を「変数」として取り出すことができ、その変数を使ってfor内で処理することができます。

for 変数名 in 配列: 処理内容…

配列を繰り返し処理する

このように、配列をforに与えることで、配列の中身を順番に処理することができます。
この例では、「num_list」という配列をforに与え、配列の中の数字を「num」という変数として一つづつ取り出し、10を足して表示するという処理内容になっています。

num_list = [1, 2, 3, 4, 5, 6]

for num in num_list:
    result = num + 10
    print(result)

11
12
13
14
15
16

繰り返し処理を途中で中断する

また、for文の途中にif文を挟み、さらに「break」を設けることで、何かの条件に一致したときに繰り返し処理を途中で終了させることができます。
この例では、「result」が14になった時点で繰り返し処理を終了させています。

num_list = [1, 2, 3, 4, 5, 6]

for num in num_list:
    result = num + 10
    if result > 13:
            print('BREAK')
            break
    print(result)

11
12
13
BREAK

繰り返し処理完了後に実行する処理を指定する

また、for文の下に「else」を置くことで、繰り返し処理が最後まで到達したときに実行する処理内容を設定することができます。
この例では、途中でbreakが実行されることなく最後まで繰り返し処理がされているので、elseの処理内容が実行されていますね。

num_list = [1, 2, 3, 4, 5, 6]

for num in num_list:
    result = num + 10
    if result > 20:
            print('BREAK')
            break
    print(result)
else:
    print('FINISH')

11
12
13
14
15
16
FINISH

2つ以上の配列をfor文に処理させる

for文に、2つ以上の配列を処理させたいときは、zip()関数を使います。
zip()の中にカンマ区切りで配列を渡し、変数も2つ指定します。

num_listA = [1, 2, 3, 4, 5, 6]
num_listB = [100, 200, 300, 400, 500, 600]


for numA, numB in zip(num_listA, num_listB):
    result = numA + numB
    print(result)

101
202
303
404
505
606

for文でカウントする

for文に配列ではなく、renge()関数を与えると、カウントさせることもできます。
renge()関数に与える数字によって、カウント回数を変えることができます。

for count in range(10):
     print(count)

0
1
2
3
4
5
6
7
8
9

「while文」の使い方

while文は、さきほどのfor文と少し違って、if文のように条件が一致しているときに動くという性質があります。
for文よりも使いどころが限られていますが、これを知っているのと知らないのでは、できることや、コードの書きやすさも違ってきますので、こちらもぜひ覚えておきましょう。

while文の基本文法

whileは、このように条件式と処理内容を書きます。
条件式に一致している間は処理内容を延々と繰り返します。

while 条件式:
    処理内容...

たとえば、このように使います。
この例では、一度処理をするたびに変数「count」に2づつ加算され、countが10以下の間は繰り返し処理が続けられるというものです。

count = 0

while count < 10:
    count += 2
    print(count)

2
4
6
8
10

whileを途中で中断する

while文でもfor文と同じ用にbreakが使えます。
whileの中にif文を置き、特定の条件と一致した場合にwhileの繰り返し処理を途中で中断することができます。

count = 0

while count < 100:
    count += 2
    if count > 10:
            print('BREAK')
            break
    print(count)

2
4
6
8
10
BREAK

whileでもelseが使える

これもfor文と同じで、途中でbreakが実行されずにwhileの繰り返し処理が終了した場合に実行する処理をelseの下に書くことができます。

count = 0

while count < 10:
    count += 2
    if count > 100:
            print('BREAK')
            break
    print(count)
else:
    print('FINISH')

2
4
6
8
10
FINISH

まとめ

いかがでしたでしょうか。
繰り返し処理まで完璧にマスターできれば、あなたはもう立派なプログラマーといってもよいかもしれません。

とはいえ、一回で覚えるのはなかなか難しいので何度も繰り返し実際にコードを書いてみて覚えることが大切です。
とくに繰り返し処理は実際にコードを書いてみないと動きを確かめにくいので、プログラミング初心者のうちはどんどんコードを書いて、実際に動きを見て覚えるようにしましょう。

それでは、今回はこのあたりになりますが、最後まで見ていただいてありがとうございました!
また次回の記事でお会いしましょう。