python - 我无法理解的 Python 打印行为

标签 python printing

我的代码片段是这样的:

from time import sleep
for i in xrange(10):
    status = "hello%s" % str(i)
    status = status + chr(8)*(len(status)+1)
    sleep(1)
    print status

它的行为与

不同
print status

print status,

现在,当我在 print status 之后使用逗号时,print 只会输出一次到 stdout。即在循环最后一次迭代之后,当我不在 print status 之后放置那个逗号时,每次调用它时 print 输出到 stdout(因为我期待它)。

我不明白下面发生了什么。谁能解释一下。谢谢:)

最佳答案

控制台终端是行缓冲的,这意味着控制台缓冲区将在发现新行字符\n 时刷新,这解释了您现在看到的行为,因为当您执行 print status print 将自动打印一个新行字符,这将在 print 之后刷新控制台缓冲区,但是当您执行 print status, 时,print 不会添加新行,因此缓冲区不会在打印。

这是一个good article关于缓冲希望它能给你更多的洞察力:)

关于python - 我无法理解的 Python 打印行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5203415/

相关文章:

java - 打印前预览 JTextArea

python - Python print 使用哪个函数?

c# - CrystalReportViewer打印

android - 如何从 android 检测 USB 打印机并进行打印

os.environ 变量的 Python 3.6 Lambda 代码错误

python - 如何分组并将数组分配给python-pandas中的列?

python - Python技术指标的Excel xlwings数据输入

css - page-break-inside : avoid 的替代方案

python - VS Code 无法识别 Python 虚拟环境

python - 具体情况不会通过第 8 行 elif :