Python 3.2中的KeyError语法错误

8 投票
1 回答
11810 浏览
提问于 2025-04-17 02:52

我刚开始学用Python 3.2,手头有一本书里的代码都是用Python 2.6写的。我写了一个程序的一部分,但总是出现这个错误:语法错误:无效的语法。然后Python的IDLE(一个编程环境)把我代码中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 个回答

20

不要使用

except KeyError, name:

试试用

except KeyError as name:

这是Python 2.x和Python 3.x之间的区别。第一种写法已经不再支持了。

撰写回答