【问题标题】:Using time.sleep() in komodo edit?在科莫多编辑中使用 time.sleep()?
【发布时间】:2018-08-06 23:18:03
【问题描述】:

我正在尝试使用 python 在 komodo 编辑中制作一个简单的程序,当它运行时将在命令输出中打印出 10 秒的时间。

代码如下:

import time

seconds = 0

while seconds != 10:
    time.sleep(1)
    seconds += 1
    print(">", seconds)

当我在 komodo 编辑器中运行它时,它不会按需要打印出数字。

我希望在一秒后打印数字 1,在两秒后打印数字 2,等等。

相反,它会在 10 秒后打印出所有数字 (1-10)。

我已经在 python IDLE 中运行了这个完全相同的程序,它可以正常工作,每秒打印一个数字。

我做错了什么或者我不理解/不知道什么?

【问题讨论】:

    标签: python python-3.x time komodo komodoedit


    【解决方案1】:

    程序可能运行在它不相信其输出连接到终端的环境中,因此stdout 默认为块缓冲,而不是行缓冲。由于您输出的数据非常少,因此缓冲区永远不会填满,并且只会在程序退出之前被刷新。

    最简单的解决方法是将flush=True 参数添加到您的print 调用中,以便在每个print 之后显式刷新缓冲区:

    print(">", seconds, flush=True)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-04
      • 1970-01-01
      • 2020-08-13
      相关资源
      最近更新 更多