在 komodo 编辑中使用 time.sleep()?
Using time.sleep() in komodo edit?
我正在尝试使用 python 在 komodo edit 中制作一个简单的程序,当它 运行s 将在命令输出中打印出 10 秒的时间。
代码如下:
import time
seconds = 0
while seconds != 10:
time.sleep(1)
seconds += 1
print(">", seconds)
当我在 komodo 编辑 运行 时,它没有打印出想要的数字。
我希望在一秒后打印数字 1,在两秒后打印数字 2,等等
相反,它会在 10 秒后打印出所有数字 (1-10)。
我在 python IDLE 中有 运行 这个完全相同的程序,它可以正常工作,每秒打印一个数字。
我做错了什么或者我没有做错什么understand/know?
该程序可能 运行 处于不相信其输出连接到终端的环境中,因此 stdout
默认为块缓冲,而不是行缓冲。由于您输出的数据非常少,缓冲区永远不会填满,只会在程序退出前刷新。
最简单的修复方法是将 flush=True
参数添加到您的 print
调用中,因此缓冲区会在每次 print
:
后显式刷新
print(">", seconds, flush=True)
我正在尝试使用 python 在 komodo edit 中制作一个简单的程序,当它 运行s 将在命令输出中打印出 10 秒的时间。
代码如下:
import time
seconds = 0
while seconds != 10:
time.sleep(1)
seconds += 1
print(">", seconds)
当我在 komodo 编辑 运行 时,它没有打印出想要的数字。
我希望在一秒后打印数字 1,在两秒后打印数字 2,等等
相反,它会在 10 秒后打印出所有数字 (1-10)。
我在 python IDLE 中有 运行 这个完全相同的程序,它可以正常工作,每秒打印一个数字。
我做错了什么或者我没有做错什么understand/know?
该程序可能 运行 处于不相信其输出连接到终端的环境中,因此 stdout
默认为块缓冲,而不是行缓冲。由于您输出的数据非常少,缓冲区永远不会填满,只会在程序退出前刷新。
最简单的修复方法是将 flush=True
参数添加到您的 print
调用中,因此缓冲区会在每次 print
:
print(">", seconds, flush=True)