Python-while-loop
Python whileループステートメント
Pythonプログラミング言語の while ループステートメントは、特定の条件が真である限り、ターゲットステートメントを繰り返し実行します。
構文
Pythonプログラミング言語の while ループの構文は-
while expression:
statement(s)
ここで、* statement(s)は単一のステートメントまたはステートメントのブロックです。 *condition は任意の式であり、trueはゼロ以外の値です。 条件が真の間、ループが繰り返されます。
条件が偽になると、プログラム制御はループの直後の行に渡されます。
Pythonでは、プログラミング構造の後に同じ数の文字スペースでインデントされたすべてのステートメントは、単一のコードブロックの一部と見なされます。 Pythonは、ステートメントをグループ化する方法としてインデントを使用します。
流れ図
ここで、whileループの重要な点は、ループが実行されない可能性があることです。 条件がテストされ、結果がfalseの場合、ループ本体はスキップされ、whileループの後の最初のステートメントが実行されます。
例
#!/usr/bin/python
count = 0
while (count < 9):
print 'The count is:', count
count = count + 1
print "Good bye!"
上記のコードが実行されると、次の結果が生成されます-
The count is: 0
The count is: 1
The count is: 2
The count is: 3
The count is: 4
The count is: 5
The count is: 6
The count is: 7
The count is: 8
Good bye!
ここで、printステートメントとincrementステートメントで構成されるブロックは、countが9以上になるまで繰り返し実行されます。 反復ごとに、インデックスカウントの現在の値が表示され、1ずつ増加します。
無限ループ
条件が決してFALSEにならない場合、ループは無限ループになります。 この条件は決してFALSE値に解決されない可能性があるため、whileループを使用する場合は注意が必要です。 これにより、終了しないループが発生します。 このようなループは、無限ループと呼ばれます。
無限ループは、クライアントプログラムが必要に応じてサーバーと通信できるように、サーバーを継続的に実行する必要があるクライアント/サーバープログラミングで役立ちます。
#!/usr/bin/python
var = 1
while var == 1 : # This constructs an infinite loop
num = raw_input("Enter a number :")
print "You entered: ", num
print "Good bye!"
上記のコードが実行されると、次の結果が生成されます-
Enter a number :20
You entered: 20
Enter a number :29
You entered: 29
Enter a number :3
You entered: 3
Enter a number between :Traceback (most recent call last):
File "test.py", line 5, in <module>
num = raw_input("Enter a number :")
KeyboardInterrupt
上記の例は無限ループに陥り、CTRL + Cを使用してプログラムを終了する必要があります。
elseステートメントをループで使用する
Pythonは、ループステートメントに関連付けられた else ステートメントをサポートしています。
- for ループで else ステートメントが使用される場合、ループがリストの繰り返しを使い果たしたときに else ステートメントが実行されます。
- while ループで else ステートメントを使用する場合、条件がfalseになると else ステートメントが実行されます。
次の例は、elseステートメントと、5未満の数値を出力するwhileステートメントと、それ以外の場合elseステートメントが実行される組み合わせを示しています。
#!/usr/bin/python
count = 0
while count < 5:
print count, " is less than 5"
count = count + 1
else:
print count, " is not less than 5"
上記のコードが実行されると、次の結果が生成されます-
0 is less than 5
1 is less than 5
2 is less than 5
3 is less than 5
4 is less than 5
5 is not less than 5
シングルステートメントスイート
*if* ステートメントの構文と同様に、 *while* 句が1つのステートメントのみで構成される場合、whileヘッダーと同じ行に配置できます。
以下は、 one-line while 句の構文と例です-
#!/usr/bin/python
flag = 1
while (flag): print 'Given flag is really true!'
print "Good bye!"
上記の例は無限ループに入り、終了するにはCTRL + Cキーを押す必要があるため、上記の例を試してはいけません。