Address
304 North Cardinal St.
Dorchester Center, MA 02124
Work Hours
Monday to Friday: 7AM - 7PM
Weekend: 10AM - 5PM
Address
304 North Cardinal St.
Dorchester Center, MA 02124
Work Hours
Monday to Friday: 7AM - 7PM
Weekend: 10AM - 5PM
Pythonのwhile文について、その使い方と基本的な考え方について解説します。
Contents
while文の基本的な文法は次のような形式をとります。
while 条件式:
条件式が真(True)の場合の処理
では簡単な具体例を見ていきましょう。次の項目を見てください。
a=1
while a<10:
a=a*2
print(a)
ものすごく単純なコードですが、上から順番に説明していきます。
a=1
まずは変数aに1を代入します。
while a<10:
a=a*2
これは次のようなパーツ構成となっています。
条件式 | a<10 |
処理 | a=a*2 |
今、a=1ですが、これはa<10という条件を満たしますね。そこでまずこの条件式が評価されて真(True)が返ってきます(画面には出ませんが)。
そして真(True)の場合に、a=a*2という処理が開始されます。
具体的にaの値がどのように変化していくのかを書いていきます。
ステップ | aの値 | 条件式 | 条件式の評価 | 処理 | 処理後のaの値 |
---|---|---|---|---|---|
1(はじまり) | 1 | 1<10 | 真(True) | a=1*2 | 2 |
2 | 2 | 2<10 | 真(True) | a=2*2 | 4 |
3 | 4 | 4<10 | 真(True) | a=4*2 | 8 |
4 | 8 | 8<10 | 真(True) | a=8*2 | 16 |
5 | 16 | 16<10 | 偽(False) | a=16*2 | 32 |
ご覧のとおり今回のコードは数学的にいえば「2の階乗」を作るコードです。2の1乗が1、2の2乗が4・・・という感じですね。
このステップ5(つまり5回目)の条件式の評価に着目してください。偽(False)になっていますね。これは「16」が「10」よりも大きくなってしまうからです。
この場合はwhile文は実行されません。したがって今回のwhile文は1~4までのステップ(回数)でその実行が止まります。
以上のことから、
print(a)
を実行すると、「16」という数字が画面に出力されます。下の画像はWindowsのコマンドプロンプト上で今回のコードを実行した結果です。ちゃんと16が出力されていますね。