《云计算全栈》-python篇:编写类进度条程序

4 案例3:编写类进度条程序
4.1 问题

创建railway.py文件,实现以下目标:

在屏幕上打印20个#号
符号@从20个#号穿过
当@符号到达尾部,再从头开始

4.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

步骤二:测试脚本执行

[root@localhost day05]# python3 railway.py 
####@###############
[root@localhost day05]# python3 railway.py 
###########@########^Z
[3]+  已停止               python3 railway.py
发布了275 篇原创文章 · 获赞 46 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/xie_qi_chao/article/details/104726107