import sys import time def view_bar(num,total): rate = num / total rate_num = int(rate * 100) r = ' %d%%%s>' % (rate_num,'='*num) sys.stdout.write(r) sys.stdout.flush() if __name__ == '__main__': for i in range(1,101): time.sleep(0.3) view_bar(i,100)
view_bar(num,total)
num是一个随即数,total是总数( num / total ) * 100 的int类型可以计算百分比
'
%d%%%s' % (rate_num,'='*num)
代表始终在一行的开头进行输出
%d代表接收数字形式的百分比,与括号中的rate_num匹配
%%代表百分号%,要想输出特殊字符%需要在加一个用于转义。
%s与之后的'='*num进行匹配,用于输出一定数量的=>
sys.stdout.write(r)
代表没输出一行后不需要换行,直接输出即可。
sys.stdout.flush()
代表清空控制台内容,与sys.stdout.write(r)配合使用即可达到始终在一行的开头输出百分比数字的效果。
for循环中的time.sleep(0.3)
代表没0.3秒给出一个数字,用于计算百分比