Python入門講座while文による繰り返し

whileループ

whileループbreak文による中断代入文と等号continue文

条件式と分岐 で、コンピュータプログラムの三つの制御構造を紹介しました。ここではその三番めの構造である 反復(ループ) を紹介します。

Pythonでは、反復処理は while で記述します。

while 条件式:
    処理1
    処理2
    ...

while 文は、条件式 が成立するあいだ、処理 を繰り返して実行します。

if文 とおなじように、while 文に続いて条件式を指定します。行の末尾に : が必要ですので気をつけてください。

次の行から、条件式が成立するあいだ実行する処理を記述します。この処理は、行の先頭にスペース4文字で インデント して記述します。

while 条件式
    処理
^^^^
スペースを4文字入力

while文と、その後に続くインデントされたブロックを、while節 と言います。

次の例は、finish と入力されるまで何度でも文字入力を繰り返すプログラムです。

In [ ]:
text = "" # text に初期値として "" を設定する

while text != "finish": # text が "finish"ではない間、処理を繰り返す
    # 文字を入力する
    text = input("finishと入力してください:")  # text に文字を読み込む

print("終了しました")

このプログラムは、関数で文字列を変数 textfinish では ない 間、input() 関数でキー入力を受け取り、text に設定します。

  1. プログラムを実行すると、変数 text に空の文字列 '' を設定します。

  2. 次に、while 文を実行します。while 文の条件式

    text != "finish"
    

    は、変数 text と、文字列 'finish' が等しくないときに True となります。

    一番最初は、変数 text'' が設定されているので、文字列 finish と等しくありません。したがってtext != 'finish' の値は True となり、while 文はループを実行します。

  3. input() 関数を実行し、ユーザが入力した文字列を変数 text に設定します。

  4. while ループ内の処理が終わり、while 文の先頭まで戻ります。再び条件式

    text != "finish"
    

    を判定しますが、このとき、 変数 text には 2. でユーザが入力した文字列が入っています。ユーザが finish と入力していれば text != 'finish' の値は False となり、while ループは終了します。finish 以外なら、もう一度ループを再実行します。

止まらなくなってしまったら

whileループを使ったプログラムは、書き間違えると永久にループを実行し続ける事になってしまいます。

たとえば、次のプログラムはループを終了する条件が成立することがないので、いつまでも終わりません。

while True:
    text = input()
    print(text)

Colabでは、こういったプログラムを実行して終了できなくなってしまったら、実行中のセルの左側にあるボタンをクリックすると、中断できます。



【Copyright © 2001-2020 python.jp】 【Privacy Policy】 python_japan