Python IDLE语法错误 - 语法无效

时间:2016-02-22 16:01:47

标签: python python-2.6

我目前正在尝试开发游戏。我正在使用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} - 这会产生无效的语法错误,以突出显示。

1 个答案:

答案 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}