Leo*_*Leo 6 python newline python-3.x
我一直在 python 3.9 中编写一个程序,并在获得以下代码后:
#Print 3 dots at the interval shown
def dots(t):
t *= 3
sleep(t)
print('.', end='')
sleep(t)
print('.', end='')
sleep(t)
print('.')
Run Code Online (Sandbox Code Playgroud)
这称之为:
# These are completely aesthetic
sleep(0.25)
print("Defining Functions", end='')
dots(0.4)
Run Code Online (Sandbox Code Playgroud)
我预计程序会Defining Functions在 1.2 秒后打印 3 次,.在末尾添加一个点( )。真正发生的是 3.85 秒后,它用点 ( Defining Functions...) 打印了整个内容。因此,在添加新行(第三个点)之前它不会打印任何内容。
抱歉,如果有点乱,我不知道如何很好地提出这些问题
Dan*_*iel 12
Python 将输出缓冲到 stdout。这是因为一次写入较大的文本片段效率更高(系统调用更少)。
默认情况下,如果 stdout 连接到终端,则输出将是行缓冲的。因此,打印换行符会刷新缓冲区,您会立即看到输出。如果 stdout 被重定向到管道或文件,Python 会更加积极地进行缓冲,并且仅当缓冲区已满时才不会刷新换行符。
为了避免这个问题,请在睡眠之前显式刷新缓冲区:
print('.', end='', flush=True)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1793 次 |
| 最近记录: |