這個問題在這里已經有了答案: “time.sleep()”在帶有使用“end”屬性的列印函式的 for 回圈中不起作用嗎? (4 個回答) 3天前關閉。
我正在嘗試制作一個while True重復列印字串的回圈:
from time import sleep
while True:
sleep(1)
print("test", end="")
但是在使用 VSC 運行時它不會列印任何內容。用 IDLE 運行它對我有用,一個朋友也嘗試過,對他來說,情況正好相反。
為什么會這樣?
uj5u.com熱心網友回復:
這是“time.sleep()”在帶有使用“end”屬性的列印函式的for回圈中不起作用的副本嗎?,輸出需要強制使用print("test", end="", flush=True)
uj5u.com熱心網友回復:
Pythonstdout是緩沖的,這意味著在列印stdout換行符、緩沖區已滿或緩沖區已重繪 之前,列印不會出現在控制臺上。
你有兩個選擇:
- 去掉陳述句中的 end 引數
print(),因為print()陳述句隱式添加換行符。 - 使用以下方法重繪 緩沖區
sys.stdout.flush():
import sys
from time import sleep
while True:
sleep(1)
print("test", end="")
sys.stdout.flush()
flush=True在print()宣告中使用。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/411455.html
標籤:
