こんにちは。
今回は制御構文のうちwhile文やbreak, continue の基本に関する内容を学習します。
本題に入る前に、これまでの学習の流れにについてのまとめです。
これまでの学習の流れです。
四則演算、数値列、文字列についてまとめた記事については、以下の記事を参照ください。
【Python】数値と文字列について【初心者向け】
続きを見る
変数・論理値・演算子については以下の記事をご参照ください。
【Python】変数・論理値・演算子について【初心者向け】
続きを見る
関数の基本については以下の記事をご参照ください。
【Python】関数の基本について【初心者向け】
続きを見る
オブジェクトとメソッドの使い方については以下の記事をご参照ください。
【Python】オブジェクトとメソッドについて【初心者向け】
続きを見る
if, elif, else文【制御構文】の使い方については以下の記事をご参照ください。
【Python】制御構文・条件分岐の基本について【動画・画像付きで解説】
続きを見る
今回は繰り返しの動作を行う構文について学習していきます。
まず初めに、たとえば、数字の 10 から 20 までを連続して表示したいとします。
このとき、入力するプログラムの1例としては以下のものがあります。
In[]
1 2 3 4 5 6 7 8 9 10 11 | print(10) print(11) print(12) print(13) print(14) print(15) print(16) print(17) print(18) print(19) print(20) |
これでも実行できるですが、少し面倒臭いですよね。
そこで利用するのが、while
文やfor
文となります。
本記事での学習内容
- while文について
- 無限ループを避ける方法
- breakの使い方
- continueの使い方
それでは早速見ていきましょう。
繰り返し構文について
上記で記載したプログラムの様な記述の仕方でも良いかもしれませんが、かなりメンドウです。
「特定の条件式を満たす間だけ、同じ処理を繰り返す」
「10回のみ、同様の処理を繰り返す」
というように記述した方が圧倒的に楽に記述できます。
例えばイメージとしては、以下の様な図の形式です。
こういった記述をするには while
や for
という文を使います。
while文
while文を理解する為に有益な動画教材
まずは動画でさらっと解説を聞いてから学習していきましょう。(もちろん、この記事で学習した後に視聴しても理解が更に深まります。)
制御構文(while文)|中学生でもわかるPython入門シリーズ
「中学生でもわかる〜」でおなじみ、いまにゅ先生のシリーズです。
初心者向けにwhile文について非常に分かりやすく解説して下さってますね。
制御構文(break文・continue文) | 中学生でもわかるPython入門シリーズ
こちらは今回の記事で学習するbreak文
とcontinue文
についての解説動画です。併せて見ていきましょう。
Python Tutorial for Beginners | While Loop in Python
Telskoさんのチャンネルです。
while
文についてまとめて解説して下さっています。
Python Tutorial for Beginners | Break Continue Pass in Python
break
の詳しい使い方はこちらで解説して下さっています。
while文の概要について
最初に while
文について学習していきましょう。while
文は if
と同様に「ある条件式を満たす間だけ」処理を繰り返し実行します。それでは実際にcodeを書いてみましょう。
In[]
1 2 3 4 5 6 7 | i = 0 while i < 20: i += 2 print(i) print("処理を終了します") |
こちらは実際の実行画面です。
このとおり、if
の使い方とほぼ変わりません。
while (条件式):
と記述することは「条件式を満たす間」という意味を持ちます。
そして、繰り返したい命令にインデントをつけてください。(これも if
と使い方は同じですね。)
無限ループとは
while
の条件式を、間違えて次のように記述してしまった際に起きるのが無限ループです。
例えばこの様なコードになります。(実行はしないでください!!)
1 2 3 4 5 6 7 | i = 10 while i >= 10: i += 2 print(i) print("処理を終了します") |
実行画面は以下の様になります(スクロールすると無限に下に続きます。)
条件式が i >= 10
となっていますが、このプログラムにおいて変数 i
の中身が 10 を下回ることは無いですよね。
そのため永遠と繰り返しの処理が実行されてしまい、いつまでもプログラムが終了しない状況におちいります。
このような状態を 無限ループ と言います。while文などの繰り返し処理を実装する際は無限ループにならないように、気をつけてcodeを記述してください
ミスして無限ループの状態で実行してしまった場合には control +c
(Windowsの方は Ctrl + c
)を押すことで処理が止まります。
覚えておいてください。
breakの使い方について
上の解説では「無限ループにならない様に注意をしましょう」と記載しましたが、while True:
というように条件式の部分を True
とだけ記述することで、意図的に無限ループにすることもあります。
その場合は、繰り返し処理の中で if
を記述して「特定の条件を満たすときに繰り返し処理を終了」させる必要があります。
その際に使用するのが break
です。
それでは実際に実行してみましょう。
In[]
1 2 3 4 5 6 7 8 9 10 11 | i = 10 while True: i += 2 if i > 30: break print(i) print("処理を終了します") |
以下が実行画面です。
ループの中で、条件式を i >= 10
とする if
を記述し、その条件式が満たされるときに break
が実行されます。
break
は繰り返し処理を強制終了するという命令です。
break
が実行されると、その下にあって、なおかつ while
の通用範囲にある print(i)
は実行されません。
すなわち、while
の通用範囲の下にある print()
で「処理を終了します」を表示させます。具体的には以下の図の様なイメージです。
continue の使い方について
break
に似ているのですが continue
という文の使い方を学習しましょう。
continue
は繰り返し処理の最初に戻すという命令です。
実際にcodeを書いてみましょう。
In[]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | i = 10 while True: i += 2 if i > 30: break if i % 2 == 1: continue print(i) print("処理を終了します") |
以下実行結果です。
もうひとつ if
を追加しましたね。
2つ目の if
では i % 2 == 1
(i
の中身を2で割った余りが1、つまり i
の中身が奇数かどうか)を調べています。
これを満たす場合に continue
が実行され、その下にある print(i)
を無視して繰り返し処理の最初に戻り、i += 2
を実行します。
その結果、画面には 1 から 30 までの「偶数」だけが表示されることになります。具体的には以下の様なイメージです。
制御構文の課題|復習
今回はwhile文、break、continueの使い方について学習しました。
制御構文の使い方については少しまとまりましたでしょうか。
ここで、もう一度この課題に取り組んでみて下さい。理解が更に深まると思います。
【Python】制御構文・条件分岐の基本について【動画・画像付きで解説】
続きを見る