python3のwhileループはどれくらいで返ってこなくなるか?

Python3

処理待ちループを作ってみたところ、ある程度ループしたら返ってこなくなる現象が発生しました。
以下、そのコード

x=1
while True:
  print(x)
  x = x + 1 # atomだと223691とか2236913近辺で返ってこなくなる(atomフリーズ)
# コマンドプロンプトから実行で一時間放っておいたけど終わらず
# Wクリックだと174で止まったりコマンドプロンプトと同様になる

最大値の問題があるかと思いきやPython3では、「(int)整数の最大値は無いようで、いくらでも大きくなるようです」とのこと。(Python : 整数最大値、辞書項目数の最大値 )

こんな結果になったわけですが、どうも実行環境によるようです。なぜ返ってこなくなくなるのかわかりません。

whileループの中にsleep文を挟むことで回避しましたが(ただしsleep(0)では意味が無い)もっと上手く回避する方法はないものでしょうか。

だいたい、只ループさせる文というのがお行儀が悪いと言えばそうなのです。イベントを定義して、終了できるようにしたほうがいいでしょう。

コメント

タイトルとURLをコピーしました