我发现这个代码是一个很酷的刽子手游戏,我想尝试和玩。但是,当我将代码复制并粘贴到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
如何在此之后解决此问题以及可能的任何其他错误?
答案 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工具。