'while' ループについて
コードを記述する場合、一般的な課題の 1 つは、タスクを不明な回数実行する方法です。 このユニットでは、ユーザーが惑星名のリストを入力できるようにする必要があります。 残念ながら、ユーザーが入力する名前の数はわかりません。 不明な回数のループをサポートするには、while
ループを使用できます。
while
ループは、特定の条件が true の "間"、操作を実行します。 while
ループは、次の処理に使用できます。
- ファイルに別の行があるかどうかを確認します。
- フラグが設定されているかどうかを確認します。
- ユーザーが値の入力を完了したかどうかを確認します。
- コードが操作の実行を停止する変更を、ほかに行ったかどうかを確認します。
重要
while
ループを作成するときに覚えておく必要がある最も重要なことは、条件が変わる点です。 条件が常に true の場合、Python はプログラムがクラッシュするまでコードを実行し続けます。
while
ループの構文は、if
ステートメントの構文と似ています。 条件が true の間に実行する条件とコードの両方を指定します。
while
ループには、次の 3 つの重要な部分があります。
スペースが続く、
while
キーワード。テストする条件。 条件が true の場合、
while
ループ内のコードが実行されます。各反復で実行するコード。空白文字でインデントして入れ子にします。 次に例を示します。
while <condition>: # code here
ユーザーに値の入力を求め、値の入力が完了したら done を使用できるようにするコードを作成する方法を見てみましょう。 この例では、while
ループの先頭で、ユーザー入力が条件として使用されテストされます。
user_input = ''
while user_input.lower() != 'done':
user_input = input('Enter a new value, or done when done')
input
を使用してユーザーにプロンプトを表示していることに注意してください。 ユーザーが新しい値を入力するたび、条件が変わります。つまり、done を入力すると while
ループは終了します。
注意
この例では、lower
を使用して、入力を小文字に変換しています。これにより、大文字と小文字を区別しない比較が可能になります。
input
で取り込まれる他の文字列と同様に、新しく入力された文字列を使用できます。 リストに追加する場合は、次の例のようなコードを使用できます。
# Create the variable for user input
user_input = ''
# Create the list to store the values
inputs = []
# The while loop
while user_input.lower() != 'done':
# Check if there's a value in user_input
if user_input:
# Store the value in the list
inputs.append(user_input)
# Prompt for a new value
user_input = input('Enter a new value, or done when done')
while
ループ内の if
ステートメントに注意してください。 このステートメントは、user_input
内の文字列値をテストします。 while
ループが初めて実行される場合、値がないので、inputs
には何も格納されません。 初めて実行した後、user_input
はユーザーが入力した値を常に保持します。 while
は、値が done
と等しくない (ユーザーがアプリを終了するために入力する単語) ことをテストしているため、現在の値がリストに追加できる値であることがわかります。
注意
あなたは、ループの下部でテストを実行できる do
ループをサポートする他のプログラミング言語に慣れているかもしれません。 Python では、do
ループは提供していません。