Pythonの繰り返し文について、演習用プログラムのソースコードを使い、それを実行しながら解説します。
1.演習用プログラムのダウンロード
演習用プログラム( practice04.py )をダウンロードします。
ダウンロードファイルは テキストファイルになっているので、エクスプローラーを使って拡張子を .txt から .py に変更します。
practice04.py を Python をインストールしたフォルダ(今回は C:\Python)に置きます。
2.ソースコードの表示
メモ帳を使って、演習用プログラム( practice04.py )を開きます。

practice04.py
3.Python の繰り返し文について
① 繰り返し文を使う理由
コマンドプロンプト で practice04.py を実行します。
プログラムを実行する方法は、こちらの記事『ファイルに保存されたプログラムの実行』を参照します。
以下のように表示されます。
C:\Users\kotablog>python "C:\Python\practice04.py" 6
プログラムソースを確認します。
01 # -*- coding: utf-8 -*-
02 """
03 演習プログラム4
04
05 繰り返し文の基礎
06
07 """
08 import sys # モジュールのインポート
09
10 # 1から3までを足す
11 a = 1 + 2 + 3
12 print(a)
13
14 #終了1
15 sys.exit()
11行目で 1 から 3 までを足して 変数a に代入しています。
12行目の print(a) で計算結果の 6 がコマンドプロンプトに表示されます。
次に、ソースコード #終了1 の1行下の sys.exit() の先頭に「 # 」を入れてコメントにします。
Ctrl キーを押しながら、 S キーを押して、ソースコードを上書き保存します。
コマンドプロンプトで F3 キーを押して、 Enter キーを押下します。
以下のように表示されます。
C:\Users\kotablog>python "C:\Python\practice04.py" 6 55
プログラムソースを確認します。
17 # 1から10までを足す
18 a = 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10
19 print(a)
18行目で 1 から 10 までを足して 変数a に代入しています。
19行目の print(a) で計算結果の 55 がコマンドプロンプトに表示されます。
さて、それでは 1 から 100 までを足すプログラムを作るとしたらどのようにしますか?
a = 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + 13 + 14
もう 14 で飽きました.....
これを解決する方法が 「 繰り返し文 」 です。
② 繰り返し文の使い方
Pythonでは繰り返し文として、「 for文 」と「 while文 」があります。
ここでは、「 for文 」 を使って解説します。
Pythonの for文 の構文です。
インデント 処理
プログラムソースを確認します。
24 # 1から100までを足す
25 a = 0
26 for i in range(1, 101):
27 a = a + i
28 print(a)
25行目では 変数a に 0 を代入しています。これは前回の計算結果である 55 が残っているためです。このような前段階の処理を 変数の初期化 と言います。
26行目が繰り返し文になります。今回は変数名には、「 i 」を使っています。
次は繰り返す範囲ですが 1, 101 になっています。100まで足すのなら 1, 100 では?と疑問になります。
Pythonでは、範囲の終わりは、マイナス1されてしまいます。なので 1, 100 にすると 1から99 までの足し算になります。
よって、100 まで足すのであれば 1, 101 にする必要があります。
「へんなルールだなぁ!?」と思われるかもしれませんが、このルールの方が便利に使えるのです。これについては、別途解説します。
27行目で 今の 変数a の値に 変数i の値を足し算して、変数a に代入しています。
繰り返しの動作を順を追って解説します。
一番最初の 変数a は 0 です。
26行目の繰り返し文が始まると まず 変数i には 1 が代入されます。そして27行目で a = a(0) + i(1) になるので、変数a は 1 です。
次の繰り返しは、変数i には 2 が代入されます。そして27行目で a = a(1) + i(2) になるので、変数a は 3 です。
さらに繰り返しは続いて、
変数i には 3 が代入されます。そして27行目で a = a(3) + i(3) になるので、変数a は 6 です。(1+2+3)
変数i には 4 が代入されます。そして27行目で a = a(6) + i(4) になるので、変数a は 10 です。(1+2+3+4)
変数i には 5 が代入されます。そして27行目で a = a(10) + i(5) になるので、変数a は 15 です。(1+2+3+4+5)
変数i には 6 が代入されます。そして27行目で a = a(15) + i(6) になるので、変数a は 21 です。(1+2+3+4+5+6)
サイコロの目(1から6)を全部足すと 21 なので合っています。
このように 変数i が 100 になるまで繰り返して足し続けることで、1から100までの計算ができます。
それでは、プログラムを実行します。
ソースコード #終了2 の1行下の sys.exit() の先頭に「 # 」を入れてコメントにします。
Ctrl キーを押しながら、 S キーを押して、ソースコードを上書き保存します。
コマンドプロンプトで F3 キーを押して、 Enter キーを押下します。
以下のように表示されます。
C:\Users\kotablog>python "C:\Python\practice04.py" 6 55 5050
1 から 100 まで足すと答えは 5050 になります。
③ 繰り返し文の弱点
最後に繰り返し文の弱点を解説します。
実際に試してみます。1 から 1億まで足すといくつになりますか?
ソースコード #終了3 の1行下の sys.exit() の先頭に「 # 」を入れてコメントにします。
Ctrl キーを押しながら、 S キーを押して、ソースコードを上書き保存します。
コマンドプロンプトで F3 キーを押して、 Enter キーを押下します。
わたしのパソコンでは、24秒かかって、
以下のように表示されました。
C:\Users\kotablog>python "C:\Python\practice04.py" 6 55 5050 5000000050000000
処理に時間がかかるのは困るので、ソースコードの該当する部分を次のように 3文字連続のダブルクォーテーション「 """ 」を使ってコメントにします。
33 # 1から1億までを足す
34 a = 0
35 """for i in range(1, 100000001):
36 a = a + i
37 print(a)"""
1からある数字までを足すには計算式があります。
ある数字( x ) と ある数字に 1 を足したもの( x + 1 )を 掛け算して、2 で割ります。
式にすると a = x × ( x + 1 ) ÷ 2 です。
プログラムソースを確認します。
39 #終了4
40 sys.exit()
41
42 x = 100000000 # 1億
43 a = x * (x + 1) / 2
44 print(int(a))
43行目が計算式です。
プログラムを実行します。
ソースコード #終了4 の1行下の sys.exit() の先頭に「 # 」を入れてコメントにします。
Ctrl キーを押しながら、 S キーを押して、ソースコードを上書き保存します。
コマンドプロンプトで F3 キーを押して、 Enter キーを押下します。
以下のようにすぐに表示されます。
C:\Users\kotablog>python "C:\Python\practice04.py" 6 55 5050 5000000050000000
繰り返し文の解説はいかがでしたか。
プログラミングでは繰り返し文は必ず必要になります。
但し、繰り返しの回数には注意してください。
<Pythonの条件分岐文の基礎 | Pythonの繰り返し文の基礎 | Pythonの関数の基礎> |