print()print()应该是初学者最先接触到的Python函数,因为几乎所有的启蒙课程都是从print('Helloworld')开始的.其实print()也是程序员最常使用的函数之一,也是很多程序员喜欢的代码调试工具。但是关于print()这个函数,你真的了解吗?1、打字机效果如果不知道print()的flush参数,很难实现下图所示的打字机效果:print()就像一个调皮的孩子,如果你让他给你打印,他肯定会去做,但不一定马上去做,也许你会保存足够的打印作业来执行一次。设置flush=True将允许孩子立即执行命令。importtimedefprinter(text,delay=0.2):"""Typewritereffect"""forchintext:print(ch,end='',flush=True)time.sleep(delay)printer('黑铁重剑,是金庸小说中的第一剑,持之以立于不败之地。’)2、旋转进度指示器在Linux系统文本界面下,最常用的进度指示器是由横竖斜线组成的旋转图案.Python也可以轻松实现这种效果,秘诀就在于'\b'字符。'\b'相当于键盘上的退格键,可以让我们擦掉刚刚打印的最后一个字符,重新打印。为了这个效果,还需要将参数flush设置为true。'''遇到问题没人回答?小编创建了一个Python学习交流QQ群:531509025,寻找志同道合的小伙伴,互相帮助。群里还有不错的视频学习教程和PDF电子书!'''importtimedefwaiting(cycle=20,delay=0.1):"""旋转进度指示器"""foriinrange(cycle):forchin['-','\\','|','/']:print('\b%s'??%ch,end='',flush=True)time.sleep(delay)waiting()反转字符顺序,改变旋转方向。把第一个字符'-'改成'--'也可以达到这样的效果:3.叠加打印效果'\b'是返回一个字符,'\r'可以返回到行首。借助'\r'可以实现整行覆盖的打印效果:需要注意的是,如果是整行覆盖,新字符串的长度不能小于原字符串的长度,否则将保留之前的打印内容。为了这个效果,还需要将参数flush设置为true。importtimedefcover(cycle=100,delay=0.2):"""叠加打印效果"""foriinrange(cycle):s='\r%d'%iprint(s.ljust(3),end='',flush=True)time.sleep(delay)cover()
