首先来回顾下\r
回车符和print()
函数的end
参数:
\r回车符
代表回到本行开头打印
print(xxx, end=xxx)
print输出语句的end
参数代表输出的后缀,默认是\n
,所以一般print输出后默认会换行
进度条思路
控制台进度条的样式一般是在同一行不断更新读条长度,并输出百分比,因此可以首先将print函数的end
参数设置为空字符串,从而避免换行,再通过\r
不断回到行首重新输出,以此覆盖改行的输出内容,不断循环即可,举例:
import time
for i in range(0, 101):
time.sleep(0.01)
print("\r" + "="*i + ">", end="")
此时就可以看到在单行里不断伸长的进度条了,下面来个稍微好看点的进度条示例(增加了临界点和百分比显示)
代码示例
import time
for i in range(0, 101):
time.sleep(0.01)
x = "{}>".format((i//2)*"=")
print("\r|{:<52}|{:>3}%".format(x, i), end="")
# 利用了format格式化,{:<52}代表读条长度为52,并向左居中
# 结果显示:
# |===================> | 39%
网友评论