如果你的程序需要一段时间才能显示结果,可通过显示它的进度来避免让用户感到沮丧。
阿拉米语,希伯来语和阿拉伯语中的闪米特语根 q-d-m 通常与前进或进度有关。阿拉伯语 taqaddum (?????)的意思是“进度”。进度是很重要的。正如每部感觉良好的电影都会告诉你,旅程和目的地同样重要。
大多数程序都有一个明确的目标,一个期望的最终状态。有时,计算这个最终状态可能需要很长的时间。虽然计算机没有感情不在乎,但人却在乎。人类并不乐意坐在原地等待,而看不到任何明显的进展迹象。疑问不断蔓延。程序崩溃了吗性能是否抖动系统是否把所有的计算资源都分配给了其他任务p>
就像正义一样,进度必须被看到,而不仅仅是完成。Python 库 tqdm 有助于使进度变得明确。
tqdm 模块可在控制台下工作,但它也专门支持了我最喜欢的环境之一 Jupyter。要在 Jupyter 中使用 tqdm,你需要导入 notebook 子模块并安装 ipywidgets。notebook 子模块与 tqdm 接口兼容。
这意味着你可以做一些导入时操作来导入正确的模块,同时保持 tqdm 的用法不变。诀窍是检查 __main__ 模块是否具有全局变量 get_ipython。虽然这只是一个启发式的方法,但却是一个相当准确的方法:
import sys
if hasattr(sys.modules[“__main__”], “get_ipython”):
from tqdm import notebook as tqdm
else:
import tqdm
最简单的情况是,某件事情需要运行一定的迭代次数(事先已知),而每一次迭代的时间都差不多。例如,有一个计算任何数字的平方根的算法,通过从 1 作为猜测值开始,然后计算出一个改进后的猜测值:
def improve_guess(rt, n):
return (rt + n/rt) / 2
一点点的改进可以让你更加接近该平方根。例如,你可以计算 2 的平方根:
guess = 1
target = 2
for i in tqdm.trange(10):
guess = improve_guess(guess, target)
然而,并不是所有的事情都可以预测。最不容易预测的事情之一就是 络速度。当你下载一个大文件时,衡量进度的唯一方法就是检查已经下载了多少:
url = “https://www.python.org/ftp/python/3.9.0/Python-3.9.0.tgz”
import httpx
with httpx.stream(“GET”, url) as response:
total = int(response.headers[“Content-Length”])
with tqdm.tqdm(total=total) as progress:
for chunk in response.iter_bytes():
progress.update(len(chunk))
所以,如果你的程序需要一段时间才能显示最终结果,为避免让你的用户感到沮丧。请显示它的进度!

文章知识点与官方知识档案匹配,可进一步学习相关知识Python入门技能树桌面应用开发Tkinter212702 人正在系统学习中 相关资源:口腔管理软件牙医管家口腔管理软件v3.11.0.16标准版_牙医管家…
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!