while ループ
CoddyのPythonジャーニー「Fundamentals」セクションの一部。レッスン 36/77。
while ループは for ループとは異なります。for ループは特定の range にわたって繰り返し処理を行いますが、while ループは特定の条件(condition)が満たされている限り繰り返し処理を継続します。
while ループを使用するには、次のように記述します:
while condition:
codeコードは条件(condition)が True の場合にのみ実行されます。
condition(条件)は、通常 <= (以下)、>= (以上)、< (未満)、> (超)、== (等しい) などの比較演算子を使用して形成されます。ループは、その比較が True に評価される限り実行を続け、False になるとすぐに停止します。
ループ処理の内部では、通常、判定対象の `variable`(変数)を`update`(更新)する必要があります。これは +=(加算代入)、-=(減算代入)、*=(乗算代入)、/=(除算代入)のような累加代入演算子を使って行います。例えば、x *= 2 は x = x * 2 の短縮形です。変数を更新しないと `condition`(条件)が変化せず、`loop` が永久に実行され続けてしまいます。
while であれば問題を解決できるものの、for ループでは解決できないユースケースが数多く存在します。
例えば、次の問題を考えてみましょう。
与えられた number よりも大きい最小の power_of_two を見つける。
それを解決するために、指定された number より大きくなるまで、現在の 2 の累乗に 2 を繰り返し掛け算する while loop を使用します。
number = 27
power_of_two = 1
while power_of_two <= number:
power_of_two *= 2
print(power_of_two)ここで、power_of_two <= number は比較演算子を使用した `condition` であり、power_of_two *= 2 は累積代入演算子を使用して各反復処理ごとに `variable` を `update` します。power_of_two が number を超えると、`condition` は False になり、`loop` が停止します。
チャレンジ
初心者1つの入力(floatの数値)を取得するプログラムを作成してください。
数値が3.5以上である限り、while loopを使って入力を2で割り続けます。
3.5より小さくなった最初の数をprintしてください。
自分で試してみよう
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
Fundamentalsのすべてのレッスン
自分で練習してみよう: Pythonオンラインコンパイラ