在 jupyter notebook 中,是否可以在替换行中打印更新值?

In jupyter notebook, is it possible to print an updating value in a replacing line?

我在 Jupyter notebook 中有一个循环,除了该循环之外,我还想在该循环内定期打印。例如

from tqdm.notebook import tqdm
running = 0
for itt in tqdm(range(40)):
    running = running + itt
    if itt % 10 == 0:
        print(running/10)

除了tqdm栏,我还得到了

0.0
5.5
21.0
46.5

不过我希望每个打印语句都能替换之前的语句。

所以到最后我应该只看到 46.5

在 print 语句中,我尝试组合使用 end='/r' 和 flush=True,但它们要么继续打印新行,要么不打印任何行。我也试过 tqdm.write 但结果是“TypeError: 'float' object is not subscriptable “

你可以这样做:

from tqdm.notebook import tqdm
import time
running = 0
for itt in tqdm(range(40)):
    running = running + itt
    if itt % 10 == 0:
        print("\r{}".format(running/10), end="")
        time.sleep(1)

测试