在 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)
测试
我在 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)