python - 如何使用字符串变量的内容来引用字典中的“字符串定义”键?
问题描述
我目前正在尝试制作一个不同类型都有弱点的战斗系统。这些弱点作为键的字符串值存储在其“主类型”下的字典中。我正在尝试使用另一个具有完全相同字符串格式的变量(即,如果我想要的键是“正常”,那么另一个变量也是“正常”。
但是,当我尝试将 .get() 方法与其中的其他变量一起使用时,它只会返回一个“NoneType”值并关闭我的所有代码。
下面是我用来将值加载到字典中的代码。
def weakness_load():
pokeweakness.seek(0)
dump = pokeweakness.read().split("\n")
for i in dump:
print(i)
if i != "":
basetype,allbaseweaknesses = i.split(",")
print(basetype,allbaseweaknesses)
weakness_dict[basetype] = allbaseweaknesses
print(weakness_dict[basetype])
print("\n")
下面是我用来查看防御者类型对攻击者类型是否弱的代码。
def check_weakness(attack,defender,mover):
defweakness = weakness_dict.get(defender)
print(defweakness)
if attack in defweakness:
plattackcrit = False
aiattackcrit = False
if mover == 1:
plattackcrit = True
return(plattackcrit)
elif mover == 2:
aiattackcrit = True
return(aiattackcrit)
上面的代码在到达时失败
如果攻击弱点:
因为“TypeError:类型的参数:'NoneType' 不可迭代。”
字典的样本数据:
键:摇滚 || 数据:格斗;钢铁;地面;水;草;
任何帮助将不胜感激,因为我不太确定如何解决这个问题,而且我也在努力在网上找到任何内容。
解决方案
解决了
就像一个彻头彻尾的白痴一样,我忘记了返回weakness_dict
,所以我实际上从未存储过更新的字典。
我确保在调用我的主代码之前将“weakness_load()”函数更新为return weakness_dict
并添加weakness_dict = weakness_load()
,以便在代码运行之前全部加载。
推荐阅读
- python - 跳过第一行的问题
- html - 可访问性:如何正确地为一个 INPUT 项目使用多个 LABEL 元素(通过 ARIA 等)?
- apache - MAMP(不是 MAMP pro)中的虚拟主机链接到错误的文件目录
- android - 在新的背景选项卡中强制打开链接(Android firefox)
- python - RuntimeWarning:已经创建了一个名为“Individual”的类,它将被覆盖
- c# - 单击按钮以在文本框中发送信息不起作用
- wordpress - 如何更改菜单栏中单击按钮的颜色?
- python - 如何将 LSTM 与 Keras 堆叠?
- delphi - 从子类调用方法时出现“抽象错误”
- ios - 如何“可视化”(观察)iOS 中退出的线程?