在Jupy循环期间打印

2024-04-25 01:37:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我在一个列表(一个参数网格)上运行一个循环,并试图简单地打印循环的进度。我发现这是我的Jupyter笔记本的问题。在

我有以下代码来提取问题:

hiddens = [2, 3]
iters = [5, 10]

para_grid = [(hidden, it) 
             for hidden in hiddens
             for it in iters]

num_sets = len(para_grid)       # length = 4

curr_set = 1

for para_set in para_grid:

    print("Completed {: f}%".format(curr_set/num_sets * 100))
    curr_set += 1

    x = para_set

    print(x)

如果我在普通脚本中执行此操作,并从文本编辑器或终端运行它,则会获得预期的输出:

^{pr2}$

当我在Jupyter笔记本中这样做时,就像上面计算进度一样:curr_set/num_sets * 100总是返回零。以下是打印结果:

Completed  0.000000%
(2, 5)
Completed  0.000000%
(2, 10)
Completed  0.000000%
(3, 5)
Completed  0.000000%
(3, 10)

我测试过的其他方法也取得了一些成功,所有这些都让我认为这与curr_set值以及如何更新有关。但我还是搞不懂!在

我在搜索时发现的其他打印问题与笔记本电脑在运行时不打印有关,而是在最后(或在运行笔记本的终端)转储所有输出,但这不是我遇到的问题。在


Tags: inforsets笔记本jupyteritnumhidden
1条回答
网友
1楼 · 发布于 2024-04-25 01:37:41

我假设你的jupyter笔记本运行的是python2.x

默认情况下,如果对两个整数进行除法,则python2返回0,结果是<;1。在

一种解决方法是在代码中添加from __future__ import division。在

另一个解决方法,正如titipat在评论中建议的那样,是“强制”一个变量的行为类似于一个浮点,例如使用float(curr_set)或将curr_set设置为1.0。在

相关问题 更多 >