синтаксическая ошибка с KeyError в Python 3.2 - PullRequest
7 голосов
/ 22 сентября 2011

Я новичок в использовании python 3.2, и у меня есть книга, чей код написан на python 2.6.я написал часть программы и продолжаю получать: Синтаксическая ошибка: неверный синтаксис Затем IDLE python выделяет запятую после KeyError в моем коде:

from tank import Tank

tanks = { "a":Tank("Alice"), "b":Tank("Bob"), "c":Tank("Carol")}
alive_tanks = len(tanks)

while alive_tanks > 1:
    print
    for tank_name in sorted( tanks.keys() ):
        print (tank_name, tanks[tank_name])

    first = raw_input("Who fires? ").lower()
    second = raw_input("Who at? ").lower()

    try:
        first_tank = tanks[first]
        second_tank = tanks[second]
    except KeyError, name:
        print ("No such tank exists!", name)
        continue

1 Ответ

18 голосов
/ 22 сентября 2011

вместо

except KeyError, name:

попробовать

except KeyError as name:

Это разница между Python 2.x и Python 3.x. Первая форма больше не поддерживается.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...