【原文】

需求:打印一颗 ”*” 休息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. TTTTTTTTTTTTT CDOJ 1136 邱老师玩游戏 树形dp

    邱老师玩游戏 Time Limit: 3000/1000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others) Submit St ...

  2. 『ZJOI2019 D2T2』语言

    ~~ 话说,本题考场想出三只\(log\)的暴力做法,被卡成暴力了.~~ 题目分析 首先考虑枚举每一个点,计算这个点可以和多少点进行交易. 将所有经过该点的路径\(s,t\)拿出,那么这些极远的\(s ...

  3. html基础(选择器,font属性 )

    css选择器    css与html的关系   css以html为基础 css主要设置的就是html标签中的属性样式,css进行网页布局.   css语法 选择器{属性:值,属性:值}   css选择 ...

  4. docker的数据管理

    容器中管理数据主要有两种方式: 1.数据卷:容器内数据直接映射到本地宿主机. 2.数据卷容器:使用特定容器维护数据卷 数据卷: 数据卷是一个可供容器使用的特殊目录,他将主机操作系统目录直接映射进容器. ...

  5. MERGE INTO 解决大数据量复杂操作更新慢的问题

    现我系统中有一条复杂SQL,由于业务复杂需要关联人员的工作离职三个表,并进行分支判断,再计算人员的字段信息,由于人员多,分支多,计算复杂等原因,一次执行需要5min,容易卡死,现在使用MERGE IN ...

  6. Django的JWT机制工作流程

    https://blog.csdn.net/bin_1022/article/details/81278513 django-rest-framework-jwt token 怎么解码得到用户名? d ...

  7. Spring Boot注入RestTemplate ,出现空指针解决办法

    SpringBoot 注入RestTemplate 我看了一下大都是让我们在启动类里面加一个Bean配置代码如下 @Autowired private RestTemplateBuilder buil ...

  8. leetcode题目17.电话号码的字母组合(中等)

    题目描述: 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合. 给出数字到字母的映射如下(与电话按键相同).注意 1 不对应任何字母. 示例: 输入:"23"输出: ...

  9. CSS标签详解

    CSS3标签 Css3概述 从2010年开始,HTML5与CSS3就一直是互联网技术中最受关注的两个话题.从前端技术的角度可以把互联网的发展分为三个阶段:第一阶段是web1.0以内容为主的网络,前端主 ...

  10. 【好书推荐】9、安卓Andorid编程吐血整理100+本

    点开即可