【原文】

需求:打印一颗 ”*” 休息1s

代码如下:

#!/usr/bin/python
#coding=utf-8
'''
暂停1s输出
''' import time def printStar(n):
for i in range(n):
print " * ",
time.sleep(1) if __name__ == '__main__':
printStar(10)

输出结果(等待10s后一次性输出):

[root@miner_k test]# python sleep.py
* * * * * * * * * *

分析原因: 
在运行代码时,打印10个"*"没有占满缓存区,所以等到程序结束时,才会一次性输出。

缓冲区的刷新方式:
1.flush()刷新缓存区
2.缓冲区满时,自动刷新
3.文件关闭或者是程序结束自动刷新。

正确代码:

#!/usr/bin/python
#coding=utf-8
'''
暂停1s输出
''' import time
import sys def printStar(n):
for i in range(n):
print " * ",
sys.stdout.flush()
time.sleep(1) if __name__ == '__main__':
printStar(10)

另外,在https://blog.csdn.net/qq_16234613/article/details/79532050  中也有相关描述:

【实际测试】

Python 3 应该不存在此前置刷新缓冲区 现象。

#!/usr/bin/python
#coding=utf-8 #暂停1s输出 import time def printStar(n):
for i in range(n):
print("*"),
time.sleep(1) if __name__ == '__main__':
printStar(60)

对于Python3环境,将代码作小的修改后,实际打印的效果为:

每个1s打印一次  *

可通过 计时程序执行时间:

#!/usr/bin/python
#coding=utf-8 #暂停1s输出 import time def printStar(n):
for i in range(n):
print("*"),
time.sleep(1)
start = time.clock()
print("Timing from now on.") #从现在开始计时
if __name__ == '__main__': printStar(60) end = time.clock()
t=end-start
print("Rumtime is :",t,"s")

————————(我是分割线)————————

参考:

1. https://blog.csdn.net/miner_k/article/details/76946045

2. https://blog.csdn.net/qq_16234613/article/details/79532050

备注:

初次编辑时间:2019年9月22日17:21:47

环境:Windows 7   / Python 3.7.2

【Python】【demo实验1】【Python运行时强制刷新缓冲区,输出信息】(Python3 应不存在类似情况)的更多相关文章

  1. 解决python在命令行中运行时导入包失败,出现错误信息 "ModuleNotFoundError: No module named ***"

    转自https://www.cnblogs.com/dreamyu/p/7889959.html https://www.cnblogs.com/lifeofershisui/p/8135702.ht ...

  2. C#使用cmd运行命令并返回控制台输出信息

    public static string RunCmd(string cmd){ cmd = cmd.Trim().TrimEnd('&') + "&exit";/ ...

  3. 【python】map list for 运行时长测试

    import time,sys reps=1000 size=10000 def tester(func,*args): starttime=time.time() for i in range(re ...

  4. C#自定义TemplateImage使用模板底图,运行时根据用户或产品信息生成海报图(1)

    由于经常需要基于固定的一个模板底图,生成微信小程序分享用的海报图,如果每次都调用绘图函数,手动编写每个placeholder的填充,重复而且容易出错,因此,封装一个TemplateImage,用于填充 ...

  5. vue在窗口大小改变时强制刷新组件的方法

    mounted () { window.onresize = () => { return (() => { this.$forceUpdate(); })() } }

  6. 一个类,有新增元素(add)和获取元素数量(size)方法。 启动两个线程。线程1向容器中新增数据。线程2监听容器元素数量,当容器元素数量为5时,线程2输出信息并终止

    方式一: /** * 两个线程要是可见的所以要加上votalile */public class Test_01 { public static void main(String[] args) { ...

  7. 华为手机在开发Android调试时logcat不显示输出信息的解决办法

    手机连接电脑RUN AS logcat 提示:Unable to open log device '/dev/log/main': No such file or directory 信息 本人华为C ...

  8. 如何在Windows下开发Python:在cmd下运行Python脚本+如何使用Python Shell(command line模式和GUI模式)+如何使用Python IDE

    http://www.crifan.com/how_to_do_python_development_under_windows_environment/ 本文目的 希望对于,如何在Windows下, ...

  9. Python学习:18.Python异常处理

    一.为什么使用异常处理 当程序运行的时候出现了异常,导致程序终止运行,为了解决这种情况,我们需要预先对可能出现的异常进行处理,一旦出现这种异常,就使用另一种方式解决问题,还有就是错误信息是使用者没有必 ...

随机推荐

  1. 状压dpHDU - 4856

    J - Tunnels HDU - 4856 题目大意:地图上有些管道,在管道行走里不需要花费时间,但从一个管道的出口走到另一个管道的入口则需要花费时间,问走完所有管道最短的时间,如果不行,则输出-1 ...

  2. 2019icpc南京网络赛 F 主席树

    题意 给一个\(n\)的全排列数组\(a\),求一个递推数组每一项的值:\(ans[i]=ans[j]+1\),\(j\)为\(a[pos[i]-k]到a[pos[i]+k],(pos[i]为i在数组 ...

  3. TensorFlow使用记录 (十四): Multi-task to MNIST + Fashion MNIST

    前言 后面工作中有个较重要的 task 是将 YOLOV3 目标检测和 LanNet 车道线检测和到一个网络中训练,特别的是,这两部分数据来自于不同的数据源.这和我之前在 caffe 环境下训练检测整 ...

  4. less命令:查看文件内容

    less 命令的作用和 more 十分类似,都用来浏览文本文件中的内容,不同之处在于,使用 more 命令浏览文件内容时,只能不断向后翻看,而使用 less 命令浏览,既可以向后翻看,也可以向前翻看. ...

  5. 自定义MessageConverter--消息转换器

    我们在进行发送消息的时候,正常情况下消息体为二进制的数据方式进行传输,如果希望内部帮我们进行转换,或者指定自定义的转换器,就需要用到MessageConverter 自定义常用转换器:MessageC ...

  6. Linux网络编程一、tcp三次握手,四次挥手

    一.TCP报文格式 (图片来源网络) SYN:请求建立连接标志位 ACK:应答标志位 FIN:断开连接标志位 二.三次握手,数据传输,四次挥手 (流程图,图片来源于网络) (tcp状态转换图,图片来源 ...

  7. hadoop+zookeeper+hbase伪分布式安装

    基本安装步骤 安装包下载 从大数据组件下载地址下载以下组件安装包 hadoop-2.6.0-cdh5.6.0.tar.gz hbase-1.0.0-cdh5.6.0.tar.gz zookeeper- ...

  8. 20165213 Exp6 信息搜集与漏洞扫描

    信息搜集与漏洞扫描 一. 实践内容 (1)各种搜索技巧的应用 利用Google Hacking Datebase搜索. 尝试搜索http相关的漏洞,可以看到漏洞的相关信息. 也可以使用过滤器进行过滤, ...

  9. LeetCode 82. 删除排序链表中的重复元素 II(Remove Duplicates from Sorted List II)

    题目描述 给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字. 示例 1: 输入: 1->2->3->3->4->4->5 输出: ...

  10. 19个JavaScript简化编码小技巧

    这篇文章适合任何一位基于JavaScript开发的开发者.我写这篇文章主要涉及JavaScript中一些简写的代码,帮助大家更好理解一些JavaScript的基础.希望这些代码能从不同的角度帮助你更好 ...