我目前正在尝试开发游戏。我正在使用python IDLE,它不会运行我的代码,因为它说我的代码中有语法错误。
代码使用记事本,但不在Python IDLE上。有人可以提供帮助和建议吗?。
SCREEN = display.set_mode((800,600))
FONT = "fonts/space_invaders.ttf"
IMG_NAMES = ["ship", "ship", "mystery", "enemy1_1", "enemy1_2", "enemy2_1", "enemy2_2",
"enemy3_1", "enemy3_2", "explosionblue", "explosiongreen", "explosionpurple", "laser", "enemylaser"]
IMAGES = {name: image.load("images/{}.png".format(name)).convert_alpha()
for name in IMG_NAMES}
for name in IMG_NAMES}
- 这会产生无效的语法错误,以突出显示。
答案 0 :(得分:1)
这只是一个疯狂的猜测,但似乎你(或至少你的IDLE安装)使用2.6或更早的Python版本。字典理解首先在Python 2.7中引入。
要找到答案,您可以在代码顶部查看它,并在IDLE或命令行中运行它时打印出来的内容("使用记事本"):
import sys
print sys.version
如果您确实使用的是Python 2.6 而且如果您无法升级,则可以将字典理解更改为dict
函数内的生成器表达式:
IMAGES = dict((name, image.load("images/{}.png".format(name)).convert_alpha())
for name in IMG_NAMES)
示例:
>>> {x: x**2 for x in range(10)}
{0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64, 9: 81}
>>> dict((x, x**2) for x in range(10))
{0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64, 9: 81}