Вопрос подсчета Python - PullRequest
       11

Вопрос подсчета Python

0 голосов
/ 01 марта 2019

У меня есть несколько вложенных функций, и я пытаюсь суммировать общее количество раз, когда что-то происходит, используя:

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, на который ссылаются до присваивания», даже если на него ссылаются в начале кода (вне функции)

Я могу предоставить весь код, если это проще

1 Ответ

0 голосов
/ 01 марта 2019

Похоже, что проблема может быть в том, что описано здесь .

Если вы создали cityCount вне своей функции и теперь пытаетесь присвоить ей то, что вы естьполучение - это новая локальная переменная.

Если оператор if никогда не верен, cityCount никогда не увеличивается, но код работает нормально.Если оператор if имеет значение true, вы получите ошибку, потому что нет локального cityCount для добавления.

Решением было бы добавить global cityCount в начало функции.

...