当我运行下面的脚本时,print语句会同时出现。我想要显示第一个print语句,然后执行循环,然后打印运行时间。
我需要包含其他声明吗?
import time
def main():
Time = time.clock()
print("Counting to 100,000,000:", end = "")
for i in range(1,100000000):
a = 3
print(" -- Time: ", time.clock() - Time)
if __name__ == "__main__":
main()
答案 0 :(得分:0)
Python的标准输出中有一个缓冲区。这意味着您要写入的数据(如在print()
中)有时会被存储,然后一次性写入 - 正如您在此处所遇到的那样。
要覆盖它,只需调用sys.stdout.flush()
即可“刷新”此缓冲区中已有的所有内容。
因此,要将此应用于您的代码,它看起来像:
import time, sys
def main():
Time = time.clock()
print("Counting to 100,000,000:", end = "")
sys.stdout.flush()
for i in range(1,100000000):
a = 3
print(" -- Time: ", time.clock() - Time)
if __name__ == "__main__":
main()
按预期运行(产生以下输出),第二部分稍后出现。
Counting to 100,000,000: -- Time: 4.796258999999999