メインコンテンツまでスキップ

繰り返し処理

for 文

今までに習ったことを使って、1 から 10 までの和を求めるプログラムを書いてみましょう。

Open In Colab

これぐらいなら、簡単に書けます。

では、1 から 20 までの和はどうでしょう。

Open In Colab

だんだん大変になってきました。

では、1 から 100 までの和ならどうでしょう。

Open In Colab

一応作ることはできますが、時間がかかりますし、打ち間違いをする可能性も高くなってきます。もう少し良い方法を考えなければなりません。

ここで for 文の出番です。for 文は、繰り返し処理を簡単に書くことができます。1 から 100 までの和を for 文を用いて求めるプログラムを見てみましょう。※この後、詳しく説明します。

Open In Colab

for 文を用いると、このように簡単に書くことができます。また、問題が少し変わっても、すぐにそれに合わせたプログラムを作ることができ拡張性があります。例えば、1 から 1000 の和はこのプログラムの 1011001 にするだけで簡単に作ることができます。※この後、詳しく説明します。

Open In Colab
ヒント

sum += i は、sum = sum + i と同じ意味です。累算代入演算子と呼ばれます。 次のように、様々なものがあります。

演算子説明
+=a += ba = a + bと同じ
-=a -= ba = a - bと同じ
*=a *= ba = a * bと同じ
/=a /= ba = a / bと同じ

for 文の構文は次のようになっています。

for 変数名 in range(開始値, 終端値):
任意の処理

for 文についてよりよく理解するため 1 から 10 までを出力するプログラムを見てみましょう。

Open In Colab

for 文の中の処理が繰り返し行われています。for 文に指定した変数(ここでは i )に、1 回目の処理では 1 が、2 回目の処理では 2 が、…、10 回目の処理では 10 が入っています。つまり、数学的に書けば、i には、開始値を aa 、終端値を bb とすると [a,b)[a,b) となるような整数が順番に入っていることになります。

for 文は同じ処理をただ繰り返したいときにも用いることができます。

Open In Colab
ヒント

上記のプログラムは、次と同じです。

Open In Colab
  1. Python では、変数の値が使われないときには、変数名にアンダーバー(_)を使用します。

  2. 次のプログラムを見れば分かるように、 range 関数に引数を一つだけ渡すと、開始値は 0 とみなされます。

    Open In Colab
while 文

Python では、while 文も使うことができます。 while 文の構文は次のようになっています。条件式が真のときに実行し続けます。

while 条件式:
任意の処理

例として、1 から 10 までの和を求める while 文を使ったプログラムを見てみましょう。

Open In Colab

練習問題 1

11 から nn までの和を求める関数を作って、実際に 1 から 10 までの和を求めてみましょう。

解答
Open In Colab

実は、このプログラムは次のようにしてもっと簡単に書くことができます。しかし、次項の配列の内容がわかっていないと理解できないため、次項で詳しく紹介します。

Open In Colab

練習問題 2

nn の階乗を求める関数を作って、実際に 10 の階乗を求めてみましょう。

解答
Open In Colab

ちなみに、math ライブラリに階乗を計算するプログラムが入っているようです。公式ドキュメントはこちら

これを使えば、次のようになります。

Open In Colab