Der folgende Python-Code:Listenindizes müssen ganze Zahlen sein, nicht str. BATTLESHIP
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"
erhalte ich diesen Fehler:
Board[-1][Ships] -= 1 TypeError: string indices must be integers, not str
Wie ich dieses Problem beheben kann, wäre jede Hilfe sehr
Danke für die schnelle Antwort, im nicht die besten in Python so im immer noch ein wenig verwirrt –
Brett in Position -1 ist eine Zeichenfolge, kein Diktat. Sie können also nicht auf die Zeichenfolge mit einer anderen Zeichenfolge zugreifen. Du solltest etwas wie Board [-1] = {'Battleship': 10, ...} haben. Stattdessen haben Sie etwas wie Board [-1] = "oh my" – Schore