【发布时间】:2014-08-22 17:52:59
【问题描述】:
我正在制作文字RPG,其中一个游戏命令是statistics。它会打印所有玩家的统计数据,其中之一是Defense Strength,它由玩家库存的第二个和第三个 (1, 2) 插槽中的防御项目决定。游戏中的所有物品都是item 类的实例,并具有Str(强度)属性。玩家的物品栏是一个包含 5 个插槽(永远不会更改)的列表,空插槽用 None 表示。
要打印玩家的防御强度,对于 Inventory 列表中的每个项目,如果它不是 None,或者在布尔语句中为 True,我想添加它的 Str 值(总是一个 int)来创建一个总数总和。
这就是我所拥有的:
print('- Defense Strength:', sum(i.Str for i in Inventory[1:3] if Inventory[i]))
但是这会失败并出现错误TypeError: list indices must be integers, not NoneType
我该如何解决这个问题!?
PS:尽管我只迭代了 2 个索引,但我只想在 1 行中创建此语句,因为它非常简单。
【问题讨论】: