修复我在网上找到的程序中的错误,Python

时间:2014-04-12 20:18:21

标签: python

我发现这个代码是一个很酷的刽子手游戏,我想尝试和玩。但是,当我将代码复制并粘贴到python中以便我可以播放时,我一直收到错误。我修了几个,但我不知道如何修复它们,因为我不精通python编程。这是代码的链接。

https://github.com/MrT-Productions/CodeExamples/blob/master/Python/Reverse:Evil%20Hangman.py

我将错误修正到了正常工作的位置,直到我猜到错误的字母而且我收到了这一行:

You now have 6 guesses left to play with... Be wiser my friend!

后面跟着这个错误:

File "C:", line 202, in <module>
    main()
File "C:", line 199, in main
    characterGuess(length, mainDict)
File "C:", line 81, in characterGuess
    print ("There are ", len(gameDict[gameDict.keys()[0]]),"words left")
TypeError: 'dict_keys' object does not support indexing

如何在此之后解决此问题以及可能的任何其他错误?

3 个答案:

答案 0 :(得分:3)

您运行的代码是为Python 2编写的,但您正在运行Python 3.您可以将其更改为与Python 3兼容,但如果您只想运行它,请使用Python 2。

答案 1 :(得分:3)

这不是一个代码编写服务,所以我不会修复整个事情。但要修复该特定错误,请改为:

print ("There are ", len(gameDict[list(gameDict.keys())[0]]),"words left")
                                    ^

该代码是用Python 2编写的,其中keys()返回list - 在Python 3中它没有。我们所要做的就是从中做出list来使其发挥作用。

但是,为什么不在Python 2上运行它?或者如果你坚持在Python 3上运行它,你总是可以使用2to3工具进行转换。

答案 2 :(得分:1)

正如其他答案已经提到的,这是Python2代码,您似乎运行Python3。 Python3不向后兼容。您可以尝试自己转换代码,使用Python2运行代码,或使用自动执行此过程的2to3工具。