Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 要打印的结束参数会导致不同的时间行为。sleep_Python_Python 3.x_For Loop_Time_Printing - Fatal编程技术网

Python 要打印的结束参数会导致不同的时间行为。sleep

Python 要打印的结束参数会导致不同的时间行为。sleep,python,python-3.x,for-loop,time,printing,Python,Python 3.x,For Loop,Time,Printing,我试着写这个脚本,只是在同一行上以1秒的延迟打印数字,但它不起作用 除此之外: from time import sleep for n in range(1, 11): print(n) sleep(1) 但事实并非如此,程序只是冻结: from time import sleep for n in range(1, 11): print(n, end="") sleep(1) 有人能解释为什么会这样吗?程序不会冻结,您只需通过传递flush=True来

我试着写这个脚本,只是在同一行上以1秒的延迟打印数字,但它不起作用

除此之外:

from time import sleep

for n in range(1, 11):
    print(n)
    sleep(1)
但事实并非如此,程序只是冻结:

from time import sleep

for n in range(1, 11):
    print(n, end="")
    sleep(1)

有人能解释为什么会这样吗?

程序不会冻结,您只需通过传递
flush=True来刷新流即可:

print(n, end="", flush=True)
sys.stdout
print
默认使用的流是行缓冲的(在交互模式下),如中所述:

  • 交互时,标准流是行缓冲的
这意味着当遇到用于
end
\n
)的默认字符串时,将调用
flush
。使用其他字符串(即
'
)不会触发
flush
ing,因此您必须使用
flush=True

操作强制它,我现在添加了end=“”