下面是我代码的一个节选,我有麻烦了。问题很简单,代码找不到字典中的键,如错误所述:
Traceback (most recent call last):
File "G:\Game.py", line 386, in <module>
battle()
File "G:\Game.py", line 197, in battle
if int(playerStats["playerExperience"]) > int(levels['{0}'.format("{0}".format(playerStats['level']))]):
KeyError: 'level'
以下是适用的代码的两个部分:
^{pr2}$以及
global playerStats
playerStats={
"playerMaxHp":"0",
"playerCurrentHp":"0",
"playerAtk":"0",
"playerDef":"0",
"playerDefending":"0",
"playerRunAblility":"0",
"playerExperience":"0",
"level":"1"
}
编辑:这里的“级别”是指:
levels={ #"Level"="Experience"
"2":"5",
"3":"12",
"4":"20",
}
编辑2:为级别添加了另一个值:
levels={ #"Level"="Experience"
"1":"0",
"2":"5",
"3":"12",
"4":"20",
}
已解决: 问题是在前面的代码行中,我在替换字典,而不是添加字典。一旦我修复了这个问题,代码就可以正常工作了。在
首先,什么是翻番:
我想一种格式就够了。(实际上,由于
^{pr2}$playerStats['level']
的值已经是一个字符串,所以可以完全忽略格式。)其次,levels
是什么?是单子吗?一本字典?如果您将playerStats
字典传递到该字典中,则计算结果如下:所以如果
levels['1']
是一个有效的项目,它应该可以工作。但是如果levels
是一个列表或元组,或者是一个没有'1'
键的字典,它就不会了尝试使用“而不是”:
对于ACCESOR也是一样的:如果playerStats['playerExperience']>。。。。在
好吧,你的代码运行得很好。在
与其使用字符串,不如使用整数。像这样的东西
相关问题 更多 >
编程相关推荐