Pythonのwhile文
Pythonのwhile文
Pythonのwhileの構文は以下の通り。
while_stmt ::= "while" assignment_expression ":" suite ["else" ":" suite]
関連 8. 複合文 (compound statement) — Python 3.10.4 ドキュメント
たとえば以下のように記述すると、変数iが1の間はループしつづけるんですね。
while i==1: 処理1 処理2 : :
以下のサンプルコードは、変数iが10未満の間ループし続けます。変数iはループ中で+1されるので、10以上になるとループが終了します。
$ cat ./while_sample.py #!/usr/bin/python3 print ( "loop 1 " ) i = 0 while i < 10: print( i ) i = i + 1
実行するとこうなります。
loop 1 0 1 2 3 4 5 6 7 8 9
Pythonのwhile Trueで無限ループ
Pythonのwhileを使って無限ループを作るには、whileの条件文を常にTrueにしておけばOKです。
#!/usr/bin/python3 while True: print( "loop.." )
実行するとこうなります。
loop.. loop.. loop.. loop.. loop.. loop.. loop.. loop.. : :
一般的に、sleepなどを入れずに無限ループにするとCPU負荷が上がるので、sleepを入れています。端末実行時にsleepなしで無限ループさせると、Ctrl+Cでなかなか停止できないことがあります。
#!/usr/bin/python3 import time while True: print( "loop.." ) # 1秒間のスリープ time.sleep(1.0)
timeモジュールをimportして、ループ内にtime.sleepで1.0秒のスリープを入れています。
PythonのWhileをif~breakで抜ける
Pythonのループを抜けるには、Whileで指定した条件を満たすか、break文を実行します。
無限ループの場合は、ループ中にif分とbreak文を組み合わせて記述しておくことで、特定の条件下でループを終了させることができるんですね。
関連 Pythonのif文
以下はwhileの継続条件はTrueで無限ループにし、ループ中でif文を使って条件判定をおこない、変数iが10以上になったらbreakでループを抜けるという例です。
$ cat ./while_sample2.py #!/usr/bin/python3 print ( "loop 2 " ) i = 0 while True: print( i ) i = i + 1 if( i >= 10 ): break
実行するとこうなります。
loop 2 0 1 2 3 4 5 6 7 8 9
python whileで複数条件を指定
while文には複数の継続条件を指定することができます。以下の例では、iが10未満またはjが10未満の場合にループを継続します。
$ cat while_sample3.py #!/usr/bin/python3 print ( "loop 3 " ) i = 0 j = 0 while i < 10 or j < 10: print( "i=%d" % i ) print( "j=%d" % j ) i = i + 1 j = j + 0.5
実行するとこうなります。iが10以上になっても、jが10未満の場合はループが継続します。
loop 3 i=0 j=0 i=1 j=0 i=2 j=1 i=3 j=1 i=4 j=2 i=5 : : i=16 j=8 i=17 j=8 i=18 j=9 i=19 j=9
Pythonのwhileのまとめ
- PythonのWhileは指定した条件が成立している間、ループを継続する
- Whileで無限ループを作るには、継続条件にTrueを指定。ifとbreakでループを終了も可能
- Whileの条件に複数の条件指定が可能