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