反復処理 (while)
whileは、最初に評価式を評価してからTrueであればループ内の処理を実行します。
while 評価式:
実行文
例えば、このコードではiが0、1、2のときは評価式がTrueなので実行文が実行されましたが、iが3になると評価式がFalseになるのでループが終了します。
>>> i=0
>>> while i < 3:
... print(i)
... i=i+1
...
0
1
2
>>>
目次
ループを抜ける
whileループ内でbreakを実行すると、そのwhileループから抜けます。
例えば下記はiが100未満の間は反復するのですが、iが3になった周回でif文の評価式がTrueになりbreakが実行されます。そのため、print(i)はiが2のときまでしか実行されません。
>>> i=0
>>> while i<100:
... if i>2:
... break
... print(i)
... i=i+1
...
0
1
2
>>>
無限ループを作っておいて、if文で条件を判断してbreakで無限ループから抜けるというような使い方に使えます。
処理を1回とばす
whileループ内でcontinueを実行すると、ループ内のそれ以降の処理は実行されずにwhileの評価式の評価に戻ります。
例えば下記は、iが5未満のときcontinueが実行されてprint(i)以降の処理がとばされます。
>>> i=0
>>> while i<10:
... if i<5:
... i=i+1
... continue
... print(i)
... i=i+1
...
5
6
7
8
9
>>>
ループが正常終了したときに実行する
elseを使うと、whileの反復処理が正常に終了したときだけ実行する実行文を指定できます。whileループをbreakで抜けると、elseの実行文は実行されません。
下記は、iが4になるとwhileループをbreakで抜けます。この場合、elseのところに書いてあるprint関数が実行されません。
>>> i=0
>>> while i<5:
... if i>3:
... break
... print(i)
... i=i+1
... else:
... print('completed')
...
0
1
2
3
>>>
下記は単純にiが5未満の間だけ反復処理するものですが、breakでwhileループを抜けるわけではないので、elseに書かれているprint関数が実行されます。
>>> i=0
>>> while i<5:
... print(i)
... i=i+1
... else:
... print('completed')
...
0
1
2
3
4
completed
>>>
公開日
広告
Pythonカテゴリの投稿
- PythonからWindows RuntimeのAPIを使ってみる
- Pythonから外部のアプリケーションを実行する
- PythonでApacheのログを読む
- PythonでURLを結合する
- PythonでURLを解析する
- Pythonでtar.gzなファイルを解凍(展開)する
- Pythonでwavファイルを書き出す
- Pythonでwavファイルを読み込む
- Pythonでデータを整形して出力する
- Pythonでハミング窓関数を作る(SciPy編)
- Pythonでブール値を数値に変換する
- Pythonでモジュールをインポートする
- Pythonで数値を比較する
- Pythonで文字の内容から真偽値の判定をする
- Pythonで自前の関数を定義する
- Pythonで論理演算する
- Pythonのprint関数で改行せずに出力する
- Pythonのプログラムを終了する
- Pythonの関数には参照を渡す
- Windows10 バージョン1703 Creators Update にPythonとSphinxをインストール
- Windwos10 バージョン1703 Creators Update にPythonとSphinxをインストール (Anaconda編)
- reStructuredTextの表
- ダウンロードしたファイルのチェックサムをPythonで確認してみた
- 反復処理 (while)
- 反復処理(for)
- 条件分岐
- 自作のモジュールをインポートする