Python

Pythonでwhile無限ループの書き方

2022-05-28

Share this for your friends.

Pythonでwhile無限ループの書き方

Pythonで無限ループってどう書くんだっけ?


プログラムを書く際によく使う処理のひとつにループがある。

大抵は定められた回数や要素の数だけ処理するので for を使うが、特殊な条件を満たすまでループさせたい場合には、条件を満たすまでは無限ループをする必要がある。

ではPythonで無限ループはどう書けば良いのか。

そこで今回はPythonでwhile無限ループの書き方について紹介する。

この記事を書いている人


システムエンジニア、AIエンジニアと、IT業界で10年以上働いている中堅。PythonとSQLが得意。

記事を読むメリット

Pythonでwhile無限ループの書き方がわかり、特殊なループも書けるようになる。


Pythonでwhile無限ループの書き方

Pythonで無限ループを書くには while を使う。

ただしそのまま書くと本当に無限にループするので終わらない

整数の二乗の値を無限ループで表示させてみると以下のようになる。

SAMPLE

i=1
while True:
  i2 = i*i
  print("{}^2 = {}".format(i,i2))
  i+=1

# 1^2 = 1
# 2^2 = 4
# 3^2 = 9
# ...
# 34946^2 = 1221222916
# ---------------------------------------------------------------------------
# KeyboardInterrupt                         Traceback (most recent call last)
# <ipython-input-10-faae299430c3> in <module>()
#       2 while True:
#       3   i2 = i*i
# ----> 4   print("{}^2 = {}".format(i,i2))
#       5   i+=1

# 1 frames
# /usr/local/lib/python3.7/dist-packages/ipykernel/iostream.py in _is_master_process(self)
#     306 
#     307     def _is_master_process(self):
# --> 308         return os.getpid() == self._master_pid
#     309 
#     310     def set_parent(self, parent):

# KeyboardInterrupt: 


これではプログラムを異常終了で終わらせることしかできない。



whileループに終了条件を記述する

ではこの無限ループに終了条件を追加するにはどうしたら良いのか。


ひとつは while の後ろに条件を追加する方法がある。

先程の2乗値を表示するコードに、2乗値が100未満の間のみ実行するように条件を追加すると、以下のようになる。

SAMPLE

i=1
while (i*i)<100:
  i2 = i*i
  print("{}^2 = {}".format(i,i2))
  i+=1

# 1^2 = 1
# 2^2 = 4
# 3^2 = 9
# 4^2 = 16
# 5^2 = 25
# 6^2 = 36
# 7^2 = 49
# 8^2 = 64
# 9^2 = 81



もうひとつの方法として break で終了させる方法がある。

こちらはループの中で条件判定し、終了条件を満たしたら break を実行する。

SAMPLE

i=1
while True:
  i2 = i*i
  if (i2)>=100:
    break
  print("{}^2 = {}".format(i,i2))
  i+=1

# 1^2 = 1
# 2^2 = 4
# 3^2 = 9
# 4^2 = 16
# 5^2 = 25
# 6^2 = 36
# 7^2 = 49
# 8^2 = 64
# 9^2 = 81



まとめ

今回はPythonでwhile無限ループの書き方について解説した。

無限ループするには while を使い、特定の条件で終了させるには以下の2つの方法がある。

ココがポイント

  • whileの後ろに実行する条件を書く
  • ループの中で終了条件をifで判定し、breakで抜ける


while True: で無限ループになり、breakで抜けられると覚えておくといいですね。



Share this for your friends.

ITipsと同じようなブログを作る方法

ブログに興味がありますか?

もしブログに興味がある場合は↓このページ↓を参考にすれば、ITipsと同じ構成でブログを作ることができます

サーバー、ドメイン、ASPと【ブログに必要なものは全て】このページに書きました。
同じ構成でブログ作るのはいいけど、記事はマネしないでネ (TДT;)

ランキング参加中

にほんブログ村 IT技術ブログへ

他にもブログやSNSで紹介してくれると励みになります。

はてブのコメントで酷評されると泣きます(´;ω;`)

-Python

© 2024 ITips