flush是缓存区的意思,你的输入输出一般并不会直接输入输出,而是存在一个叫做缓存区的地方
比如 import timefor i in range(5): print(i) time.sleep(1)
这时候你会发现输出结果是0,1,2,3,4每隔一s打印一个数,结果如下
但是我如果想显示01234,这样打印在一行的数字呢? 你一定会想 import timefor i in range(5): print(i, end= '') time.sleep(1)
但是这样的结果是,在最后结束的时候直接将0,1,2,3,4一起打印,而并不是一个数字接着一个数字出现 这是为什么呢? 因为print输出默认是自动换行的,所以第一个例子就满足了上面所说的第二条,遇到换行符,缓存区自动将存储内容打印到屏幕。而第二种情况设置了end=’’,那么缓存区中一直没有刷新输出,所以直到程序结束的时候才一同刷新出来。 如果你想实时刷新,你可以应用以下代码
这样可以显示01234,每隔一秒显示一个数字或者 import timeimport sysfor i in range(5): print(i, end= '', flush = True) time.sleep(1)
这样也是一样的
|
|