以下Python代码:
def CheckIfSunk(Board):
Row, Column = GetRowColumn()
if Board[Row][Column] == "A":
Ships = "Aircraft Carrier"
elif Board[Row][Column] == "B":
Ships = "Battleship"
elif Board[Row][Column] == "S":
Ships = "Submarine"
elif Board[Row][Column] == "D":
Ships = "Destroyer"
elif Board[Row][Column] == "P":
Ships = "Patrol Boat"
elif Board[Row][Column] == "P":
Ships = "Patrol Boat"
elif Board[Row][Column] == "N":
Ships = "NEW"
Board[-1][Ships] -= 1
if Board[-1][Ships] == 0:
print Ships + " Sunk"
我收到此错误:
Board [-1] [Ships] - = 1 TypeError:字符串索引必须是整数,而不是str
我如何解决这个问题,非常感谢任何帮助
答案 0 :(得分:0)
Ships
是一个字符串。
您的Board
包含字符串,因此您尝试按str
而不是index
获取字符串元素。
TypeError: string indices must be integers, not str
答案 1 :(得分:0)
代码的最后第三行
Board [-1] [Ships] - = 1
要引用二维数组中的元素,即在PYTHON中包含2个列表的列表,我们使用整数值作为索引。
变量船舶是字符串 或 无,如果不满足上述任何条件,那么无论哪种方式船舶都不是整数。
TypeError: string indices must be integers, not str
因此,您需要使用整数
访问列表(数组)