Python3超入門【第8回】「while文によるループ処理」


python3におけるwhile文の文法

while(条件式):
        繰り返したい処理

文法はとってもシンプルですね。ではサンプルプログラムを通じてwhile文の使い方を習得していきましょう!

while文の最も基本的なサンプルプログラム

まず最初にcntという変数を、whileブロックの外で定義します。

そしてwhile文の条件式は「cntが10より少ない限り実行する」ですから、条件を満たしている(cnt=0は10より小さい)ので、whileブロックに入ります。while内でcntの値を増やさないと無限ループになってしまうので、1周するたびにcntに1加算しています。

やがてcntの値は10より大きくなるので、条件式を満たさなくなります。この時点でwhileブロックを抜けることになります。

当然と言えば当然ですが下記のように予めwhileブロックの前でcntを定義しておかないとエラーになってしまうので要注意です。

<間違ったサンプルプログラム>

while文を使ってユーザーの好きな回数だけ繰り返すサンプルコード

endの値が0であればwhileブロックを抜けます。従って、ユーザーがもう一周したい!と思ったときは0と入力すれば、引き続きループが続きます。

input()に関しては初登場ですね。Python2.x系とPython3ではinput()の挙動が異なります。Python3では、input()命令を使ってユーザーからなんらかの入力を受けた場合、戻り値は「文字列」になります。

文字列としての0を受け取っても、条件式と比較できません。

そのため、文字列としての値を保持している変数endを数値型に変換してあげる必要があります。

このような型変換にはint()関数を使います。

分かりやすいように2つのサンプルコードをご紹介します。

このコードでは、num1、num2にインプットされる数字は文字列として扱われます。例えばnum1に2、num2に5を入力すると、’2’+’5’になるので、結果は7ではなく25になります。文字列を連結しただけですからね。

ちゃんとした足算プログラムにするには以下のように書くことが必要です。

int()関数を利用して文字列の数値をちゃんとした数値型に変換しているので、正しく足算をすることができます。試しに、2,5と入力すると、結果は7になります。

breakを使ってwhileから抜け出す方法もある

breakはループを強制的に抜け出す命令です。まずは最もシンプルなbreakの使い方を紹介します。

このサンプルコードではwhile文の条件式がTrueになっています。while文は条件式を評価し、結果がFalseになれば処理を中止します。反対に条件式の結果がTrueである限り続行します。

条件式にTrueを指定すると、評価も何もなく、永遠に繰り返し処理をし続けます。

ところがbreak文はループを強制的に抜け出す効果があるので、このサンプルコードは3行目のbreakに至った時点でループを脱出し、終了します。

このようなシンプルなbreak文のサンプルでは、break文を使う意味はありませんね。そこで次はもう少し実用的なbreak文のサンプルコードを示します。

このようにif文とbreak文を組み合わせることで、一定の条件になった際にループを抜ける処理を実現できます。

continue

continue文は繰り返し処理の中で、continue以下の処理を飛ばして、次の繰り返し処理に移行する命令です。if文と組み合わせて利用するのが一般的です。

cntの値が2のときだけ、print(“繰り返しております!”)が無視されて、ループの最初(cnt = cnt + 1)に戻ります。

最後に復習がてら、for文を使ったループでのcontinueの使い方を学びましょう。

このサンプルではIBMのときだけ異なるメッセージを表示しています。最初の2回はprint(company + “はIT企業の花形ですね!”)が実行され、最後にcompanyの中身がIBMになったときだけif文の中の処理を実行し、さらにcontinueすることで、print(company + “はIT企業の花形ですね!”)の行をスキップしています。

 

さて最後の最後に忘れがちなfor文を辞書型に対して使った場合のサンプルコードを復習しておきますね。念のため。

companyの部分に来るのが辞書型の「キー」になる点に注意して下さい。辞書の値を取り出すには、辞書型変数[キー]としますので、dic[company]とすることで、iPhoneなどの「値」を取り出すことができますね。

これでPython超絶入門【第8回】を終わりたいと思います。

Python3超入門講座トップに戻る

【関連記事】

[PR]入門 Python 3

あわせて読みたい