亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Python 循環在 Window 的解釋器中不斷停止

Python 循環在 Window 的解釋器中不斷停止

胡說叔叔 2023-04-25 15:58:10
我在 Windows 中使用默認的 Python 3.8 解釋器。每當我在其中運行一個長循環時,它就會停止,我必須按下或按住 Enter 鍵才能繼續運行。這在 Linux 中從來都不是問題。如何解決此問題?# this loop will eventually stop/hang/pause forever, until I press the Enter keyfor i in range(5000):   time.sleep(1)   print(i)如果我通過任何 IDE 運行代碼,它不會暫停。但出于我自己的原因,我想直接在解釋器中運行這段特定的代碼。我等了 1 分鐘多才繼續截屏。這不是一次性的問題。我運行的任何循環,無論大小或復雜程度如何,都會在幾次迭代后永久停止,直到我按下鍵盤上的 ENTER 鍵。
查看完整描述

3 回答

?
FFIVE

TA貢獻1797條經驗 獲得超6個贊

如果您單擊輸出,控制臺將暫停腳本,它將嘗試停止代碼以“選擇”輸出的一部分。試試吧,不要點擊它。ENTER 將從控制臺上的選擇欄中移除焦點,因此您將看到它不再存在。



查看完整回答
反對 回復 2023-04-25
?
狐的傳說

TA貢獻1804條經驗 獲得超3個贊

您展示的程序實際上什么都不做。它不會打印任何內容到控制臺,也不會等待輸入。

所以它實際上會運行 83 分鐘,沒有顯示它正在做任何事情,然后它會以退出代碼 0 退出。


查看完整回答
反對 回復 2023-04-25
?
陪伴而非守候

TA貢獻1757條經驗 獲得超8個贊

我猜你遇到了什么。


當然,程序會繼續運行,只是你沒有看到輸出,因為輸出是緩沖的,你沒有刷新它。


因此,在每個之后print(i),調用函數flush_output_streams():


def flush_output_streams() -> None:

    """

    flushes the output streams.


    flush calls are wrapped in try ... except, because 

    standard streams might be replaced with other streams which 

    dont have the flush method.

    """

    try:

        sys.stdout.flush()

    except Exception:

        pass

    try:

        sys.stderr.flush()

    except Exception:

        pass


查看完整回答
反對 回復 2023-04-25
  • 3 回答
  • 0 關注
  • 147 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號