Python计数问题



我有一些嵌套功能,我正在尝试总结发生某些事情的总数:

if C[city_cell_x][city_cell_y] == 1:
  cityCount +=1

,但由于这在一个函数之内:

    # Animate
fig = plt.figure()
plt.axis("on")
ims = []
for t in range(totalTime):
    print(str(r), " Time = " + str(t))
    ims.append((plt.imshow(C, cmap="Accent"),))
    C = mapRun(C)
if C[city_cell_x][city_cell_y] == 1:
  cityCount +=1
im_ani = animation.ArtistAnimation(
    fig, ims, interval=interval, repeat_delay=3000, blit=True
)
# Save the animation?
if save:
  print("Saving...")
  im_ani.save(("Repeat" + str(r) + ".html"), writer="html", fps=60, dpi=75)

我然后循环循环,它要么不是成功计数,而且仅在末尾返回零,即使在代码开始时引用了"在分配前引用的CityCount",即使它在函数的开头(函数之外))

我可以提供整个代码,如果更容易

看来问题可能是这里所描述的。

如果您在功能之外创建了cityCount,并且现在试图在内部分配它,那么您将获得的是一个新的本地变量。

如果if语句永远不正确,则cityCount永远不会增加,但代码运行正常。如果if语句为真,则会获得错误,因为没有本地cityCount添加到。

解决方案是将global cityCount添加到函数的开头。

相关内容

  • 没有找到相关文章

最新更新