【问题标题】:syntax error with KeyError in python 3.2python 3.2中KeyError的语法错误
【发布时间】:2011-09-22 19:57:33
【问题描述】:

我是使用 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

【问题讨论】:

  • 代码不完整,但我收到此错误并停止编码
  • 写完问题后,您应该突出显示代码并单击代码按钮。这将负责使您的 cod 可读。我已经在这里为你完成了。
  • Python 3 与 Python 2 有点不同,只要你在这本 2.6 的书上使用 3.2,你就会遇到这样的问题。我建议切换版本或书籍。这是概述差异的 PDF:ptgmedia.pearsoncmg.com/imprint_downloads/informit/promotions/…
  • 这里不仅仅是一个大纲:python3porting.com/differences.html ;-)

标签: python syntax python-3.x


【解决方案1】:

代替

except KeyError, name:

试试

except KeyError as name:

这是 Python 2.x 和 Python 3.x 之间的区别。不再支持第一种形式。

【讨论】:

    猜你喜欢
    • 2013-03-20
    • 1970-01-01
    • 2012-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-24
    • 2016-09-04
    相关资源
    最近更新 更多