Python 処理の流れを学ぶためのプログラム例(反復)

3つの制御構造の学習

 処理の流れは「順次」「分岐」「反復」の3つの構造の組み合わせで構成されます。
 Pythonプログラミングの練習として,実際にソースコードを記述して制御構造を学習しましょう。

 はじめに 順次処理の例
 Python 処理の流れを学ぶためのプログラム例 はじめに - 勉強ボックス管理者ブログ

 分岐処理の例
 Python 処理の流れを学ぶためのプログラム例(分岐) - 勉強ボックス管理者ブログ


ソースコード印刷用ファイル

 順次,分岐,反復,配列,関数のソースコード例です。
 Pythonプログラミング練習1_基本.pdf - Google ドライブ


反復(くりかえし命令)

while文

 処理を何回もくりかえしたいときは,while文を使います。

while 条件式 :
    条件式が真の間くりかえす処理

 ※while節の範囲を示すブロックは,半角空白4個で字下げすることで指定します。
 

 (反復の記述はループ処理ともよばれます。whileループ,forループなど)


 反復のソースコードを入力して,実行してみましょう。

print("==== 3-1 ====")
i = 0
while i < 5 :
    print(i)
    i = i + 1

実行結果

==== 3-1 ====
0
1
2
3
4

 この例ではwhile節の中で i の値を増やしているので,i<5 が偽になるとループが終了します。


 whileループの中にもif文を記述できます。奇数だけを表示するプログラムを作ってみましょう。

print("==== 3-2 ====")
i = 0
while i < 10 :
    if i % 2 != 0 :
        print(i)
    i = i + 1

 ※ %演算子は剰余(割った余り)を求めます。例では i の値を2で割った余りが0ではないときprint()関数を呼び出しています。

実行結果

==== 3-2 ====
1
3
5
7
9

 <2023-02-17追記>奇数だけを表示するプログラムについて,もう少し簡単な例を「Python 奇数だけを表示するプログラム - 勉強ボックス管理者ブログ」に記載しました。

break文による中断

 反復の処理を途中で打ち切りたいときにはbreak文を使います。

print("==== 3-3 ====")
i = 0
while i < 10 :
    if i == 7 :
        break
    print(i)
    i = i + 1

実行結果

==== 3-3 ====
0
1
2
3
4
5
6

 例では 変数 i の値が7と等しいときにbreak文が実行されて,ループが終了します。

無限ループ

 while文の条件式が常に真の場合は,ループが終了しません。無限ループになった場合は,シェルのキーボード操作で Ctrl+C を押すと中止できます。

print("==== 3-4 ====")
while True :
    name = input("Enter your name. > ")
    print("Hello, " + name + ".")

実行結果

==== 3-4 ====
Enter your name. > Taro
Hello, Taro.
Enter your name. >

 Ctrl+C を入力するとプログラムの実行を中止できます。(シェルにはエラーメッセージが表示されます)


 このプログラムにはループを終了させる処理を入れておくとよいでしょう。ユーザが end を入力したらbreak文を実行してwhileループを終了するなどが考えられます。

print("==== 3-4 ====")
while True :
    name = input("Enter your name. > ")
    if name == "end" :
        break;
    else:
        print("Hello, " + name + ".")

実行結果

==== 3-4 ====
Enter your name. > Jiro
Hello, Jiro.
Enter your name. > end
>>>

 プログラムを実行するのが自分だけではない場合は,end入力で終了することをユーザに伝える工夫も必要になります。

関連記事

kinutani.hateblo.jp