4 案例3:编写类进度条程序
4.1 问题
创建railway.py文件,实现以下目标:
在屏幕上打印20个#号 符号@从20个#号穿过 当@符号到达尾部,再从头开始
1234.2 方案
利用while循环方法依次打印1个@和19个#,每循环一次,@所在位置后移一位,利用\r后内容覆盖前面内容,并利用程序休眠时间差,达到动态效果,需要注意的是:
1.\r表示将输出的内容返回到第一个指针,后面的内容会覆盖前面的内容
2.sys.stdout.flush()这句代码的意思是刷新输出,让循环结果依次显示,而不是一次性显示
3.time模块中的sleep方法让程序休眠
4.3 步骤实现此案例需要按照如下步骤进行。
步骤一:编写脚本
[root@localhost day05] # vim railway.py #!/usr/bin/env python3 import time import sys l = 19 counter = 0 print('#' * (l + 1), end='') while True: sys.stdout.flush() time.sleep(0.2) print('\r%s@%s' % ('#' * counter, '#' * (l - counter)), end='') counter += 1 if counter > l: counter = 0
1234567891011121314步骤二:测试脚本执行
[root@localhost day05]# python3 railway.py ####@############### [root@localhost day05]# python3 railway.py ###########@########^Z [3]+ 已停止 python3 railway.py
12345