-2

Python を学習するための完全なチュートリアルは見ていませんが、pygame の使用方法を学習しています。私はPythonについていくつか知っていますが、背景画像を入れようとしているわけではありません。チュートリアルでは、この関数を使用する必要があると書かれています:

def load_image(filename, transparent=False):
        try: image = pygame.image.load(filename)
        except pygame.error, message:
                raise SystemExit, message
        image = image.convert()
        if transparent:
                color = image.get_at((0,0))
                image.set_colorkey(color, RLEACCEL)
        return image

しかし、私のエディター (Pyscripter) では、行except pygame.error, message:にシンタキシス エラーがあります。理由がわかりません。それを削除すると、raise で始まる行にもシンタキシス エラーが発生します...どうすればよいですか? 前もって感謝します!

4

1 に答える 1

1

の古い構文を使用していますexcept。新しい方法は次を使用しますas

except pygame.error as message:

古い方法は Python 3.x で削除されました。下記参照:

>>> try:
...     1/0
... except ZeroDivisionError, e:
  File "<stdin>", line 3
    except ZeroDivisionError, e:
                        ^
SyntaxError: invalid syntax
>>> try:
...     1/0
... except ZeroDivisionError as e:
...     print(e)
...
division by zero
>>>

また、raiseステートメントの構文が間違っています。そのはず:

raise SystemExit(message)

下記参照:

>>> raise ZeroDivisionError, "NO!"
  File "<stdin>", line 1
    raise ZeroDivisionError, "NO!"
                       ^
SyntaxError: invalid syntax
>>> raise ZeroDivisionError("NO!")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ZeroDivisionError: NO!
>>>

したがって、最終的なコードは次のようになります。

except pygame.error as message:
    raise SystemExit(message)
于 2013-10-21T17:07:04.310 に答える