python - 如何修复迭代期间字典大小更改: pygame radar

标签 python pygame

我一直在尝试让这个 python 脚本使用超声波传感器作为雷达模拟。每次我运行代码时,它会运行 3 秒,然后退出并返回错误:字典在迭代期间更改了大小。

我很困惑,不知道从哪里开始。我已经查看了整个代码,但找不到问题,更不用说:字典。也许只是我缺乏经验,但帮助是值得赞赏的。完整的原始源代码可以在这里找到:https://github.com/AmrMohamed-95/radar-simulation

pi@Pi01:~/radar-simulation/src $ python3 radar.py
pygame 1.9.4.post1
Hello from the pygame community. https://www.pygame.org/contribute.html
dictionary changed size during iteration
Radar Exit
pi@Pi01:~/radar-simulation/src $ 

它应该显示一个持续刷新的雷达,但在两圈后退出。

最佳答案

它是 Python 2 代码,因此请使用 Python 2 运行它(而不是像您一直在做的那样使用 Python 3),例如

pi@Pi01:~/radar-simulation/src $ python radar.py
<小时/>

编辑

至于您观察到的错误,当您在迭代 dict 元素时发出 del 时,就会发生这种情况,例如:

d = {x, str(x): for x in range(10)}

for k, v in d.items():
    if k == 7:
        del d[k]  # <--- error here!

这可能会导致行为不一致,即使错误没有显示,也被认为是不好的做法。

要修复它,您应该重写代码以避免 del ...

在该代码库中,这似乎发生在 display.py line 106 中.

关于python - 如何修复迭代期间字典大小更改: pygame radar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58234190/

相关文章:

python - Pygame 贪吃蛇游戏中的蛇长度

python - 使用 Anaconda 3.4 在 Windows 7 64 位中安装 Pygame

python - pygame错误: video system not initalized

python - 在调试期间检查常量或变量张量的值

python - Flask-reSTLess 与 mod_wsgi 无法连接到 MySQL 服务器

python - Django 在修改 less 文件时运行 bash 脚本

python - 如何在变量中为 python 函数构建参数

pygame - 我不知道这个错误来自哪里

python - Pandas 和 XlsxWriter : how to alter formatting and add comments from items in dataframe

python - Pygame - 是否可以根据时间更改背景图像?