封面图片:《Python程序设计基础与应用》(ISBN:9787111606178),董付国,机械工业出版社
图书详情:
用书教师可以联系董老师获取教学大纲、课件、源码、教案、考试系统等配套教学资源。
===============
===============
Python内置函数print()的语法为:
虽然sep参数和file参数也有很重要的用途,但是没啥坑,常规使用即可,本文重点介绍end和flush。使用print()函数输出完给定的值之后,默认以换行结束,例如:
如果想让这样循环输出的内容显示在同一行中,可以修改print()函数的参数end,指定为不包含换行符和回车符的字符串,例如:
但是,这个用法是会带来一个隐藏的坑。函数print()并不是直接把内容输出到屏幕(file参数为默认值时),而是先输出到缓冲区,等缓冲区满了或者程序运行结束之后再刷新到屏幕上,除非采用其他措施强制刷新并清空缓冲区(或者输出流)。
下面的这个程序,本意是每隔0.5秒输出一个圆点来模拟动态进度条效果的过程,在IDLE中、Spyder中运行不会有问题。然而在PyCharm和cmd中并没有实现这个动画的效果,而是等了5秒钟以后忽地一下子输出了所有的内容。
正如刚才所说,如果有其他措施能强制刷新并清空缓存,就可以避免这个问题了,一种方法是使用print()函数的flush参数,一种方法是调用sys.stdout.flush()函数。下面两个视频演示了这两种用法。
除了这两种方式之外,如果在输出的内容中有回车符\r,也会立刻输出到屏幕,从而间接实现上面的效果。但是这样会覆盖本行已经输出的内容,使用时要注意。由于公众号一篇文章最多只能放3个视频,大家可以按照上面视频中的方法运行下面的代码观察效果。
温馨提示
关注本公众号“Python小屋”,通过菜单“最新资源”==>“历史文章”可以快速查看分专题的930篇技术文章列表(可根据关键字在页面上搜索感兴趣的文章),通过“最新资源”==>“微课专区”可以免费观看450节Python微课,通过“最新资源”==>“培训动态”可以查看近期Python培训安排,通过“最新资源”