処理待ちループを作ってみたところ、ある程度ループしたら返ってこなくなる現象が発生しました。
以下、そのコード
x=1 while True: print(x) x = x + 1 # atomだと223691とか2236913近辺で返ってこなくなる(atomフリーズ) # コマンドプロンプトから実行で一時間放っておいたけど終わらず # Wクリックだと174で止まったりコマンドプロンプトと同様になる |
最大値の問題があるかと思いきやPython3では、「(int)整数の最大値は無いようで、いくらでも大きくなるようです」とのこと。(Python : 整数最大値、辞書項目数の最大値 )
こんな結果になったわけですが、どうも実行環境によるようです。なぜ返ってこなくなくなるのかわかりません。
whileループの中にsleep文を挟むことで回避しましたが(ただしsleep(0)では意味が無い)もっと上手く回避する方法はないものでしょうか。
だいたい、只ループさせる文というのがお行儀が悪いと言えばそうなのです。イベントを定義して、終了できるようにしたほうがいいでしょう。
コメント