说明:
模拟输出简单的非刷新文本进度条。要求按照任务执行百分比将整个任务划分为100个单位,每执行10%输出一次进度条,每行输出包含进度百分比、代表已完成部分(**)和未完成部分(..)的两种字符,以及一个跟随完成进度前进的小箭头。
问题分析:
题目的关键是输出字符的格式,可使用format()方法进行格式化。采用for循环和print()函数构成程序的主体部分,使用格式字符%输出百分比,为了使输出整齐,可使用{:>4.0%}格式化百分比部分。
由于程序执行速度太快,不便于观察,可使用time.sleep(t)函数将当前程序暂停t秒。
scale=10 #输出进度条的精度
print('----------执行开始----------')
for i in range(scale+1): #循环变量从0到scale
done='**'*i #用*表示已完成的部分
undone='..'*(scale-i) #用.表示未完成的部分
percent=i/scale #计算完成百分比
print('{:>4.0%}[{}->{}]'.format(percent,done,undone)) #{:>4.0%}格式化百分比部分 >4表示向右位移4位,右对齐
time.sleep(0.5) #暂停0.5秒
print('----------执行结束--------')
执行结果:
----------执行开始----------
0%[->....................]
10%[**->..................]
20%[****->................]
30%[******->..............]
40%[********->............]
50%[**********->..........]
60%[************->........]
70%[**************->......]
80%[****************->....]
90%[******************->..]
100%[********************->]
----------执行结束--------