import math
from tqdm import tqdm, trange
# 计算阶乘
results_1 = []
for i in range(6666):
results_1.append(math.factorial(i))
这是一个循环计算阶乘的程序,我们不知道程序运行的具体情况,如果能加上一个程序运行过程的进度条,那可就太有趣了。
results_2 = []
for i in tqdm(range(6666)):
results_2.append(math.factorial(i))
直接加上
tqdm()
就好啦,下面是在jupyter lab
上运行的结果。

results_3 = []
for i in trange(6666):
results_2.append(math.factorial(i))
我们也可以直接在
range(6666)
前加上一个t
,使用trange()
也有同样的效果。
trange
和tqdm
的主要区别是trange
只接受范围参数,而tqdm
可以接受任何可迭代对象。此外,trange
相对于tqdm
来说更加轻量级,只提供了一些基本的进度条功能。如果您只需要简单的进度条并且您的循环是迭代范围,则使用trange
可能更加合适。
import math
from tqdm.notebook import tqdm, trange
# 计算阶乘
results_1 = []
for i in trange(6666):
results_1.append(math.factorial(i))
使用
tqdm.notebook
可以使在jupyter lab
上运行的进度条变的好看一些,效果如下。

import math
from tqdm import tqdm, trange
results_1 = [math.factorial(i) for i in tqdm(range(6666))]
results_2 = [math.factorial(i) for i in (trange(6666))]

这是在
PyCharm
中运行的进度条。
import math
from tqdm import tqdm, trange
# 计算阶乘
results_1 = []
for i in tqdm(range(6666), ncols=100):
results_1.append(math.factorial(i))

参数
ncols
:整个输出信息的宽度。最上面运行的那个都换行了,太丑了哈。
import math
from tqdm import tqdm, trange
# 计算阶乘
results_1 = []
for i in tqdm(range(6666), ncols=100, desc='newjeans', colour='green'):
results_1.append(math.factorial(i))
desc
: 进度条的前缀信息。colour
:进度条的颜色。下面是效果。

# 自定义进度条,前导信息
proc_bar = tqdm(range(6666), ncols=100)
for i in proc_bar:
proc_bar.set_description(f"正在计算{i}")
math.factorial(i)
进度条的前导信息设置,初始化一个
tqdm
对象,使用set_description()
方法。

proc_bar = tqdm(range(6666), ncols=100)
for i in proc_bar:
proc_bar.set_postfix({"正在计算" : i})
math.factorial(i)
进度条后缀信息设置,初始化一个
tqdm
对象,使用set_postfix()
方法。
