Python 如何在字符串中指定字符?

Python 如何在字符串中指定字符?,python,Python,这是我所有的代码 from random import randint board = [] for x in range(5): board.append("O" * 5) def print_board(board): for row in board: print(" " .join(row)) print_board(board) def ship_row(board): return randint(0, len(board) - 1)

这是我所有的代码

from random import randint

board = []

for x in range(5):
    board.append("O" * 5)

def print_board(board):
    for row in board:
        print(" " .join(row))

print_board(board)

def ship_row(board):
    return randint(0, len(board) - 1)

def ship_col(board):
    return randint(0, len(board) - 1)

print("Play some battleship")

ship_row = ship_row(board)
ship_col = ship_col(board)

print(ship_row)
print(ship_col)


for i in range(4):
    print("Turn "), i + 1
        guess_row = int(input("Guess Row:"))
        guess_col = int(input("Guess Col:"))

if guess_row == ship_row and guess_col == ship_col:
    print("Congratulations! You sunk my battleship!")
    break
else:
    if (guess_row < 0 or guess_row > 4) or (guess_col < 0 or guess_col > 4):
        print("Oops, that's not even in the ocean.")
    elif(board[guess_row][guess_col] == "X"):
        print("You guessed that one already.")
    else:
        print("You missed my battleship!")
        board[guess_row][guess_col] = "X"
        if (i == 3):
            print("Game Over")
    print_board(board)
来自随机导入randint
董事会=[]
对于范围(5)内的x:
板。附加(“O”*5)
def打印板(板):
对于板中的行:
打印(“.”连接(行))
印刷电路板
def船行(板):
返回randint(0,len(板)-1)
def船柱(板):
返回randint(0,len(板)-1)
打印(“玩一些战舰”)
船行=船行(板)
船柱=船柱(板)
打印(发货行)
打印(装运港)
对于范围(4)中的i:
打印(“旋转”),i+1
猜测行=int(输入(“猜测行:”)
guess_col=int(输入(“guess col:”)
如果guess\u row==ship\u row和guess\u col==ship\u col:
打印(“祝贺你!你击沉了我的战舰!”)
打破
其他:
如果(猜测行<0或猜测行>4)或(猜测列<0或猜测列>4):
打印(“哦,那甚至不在海里。”)
elif(董事会[猜测行][猜测列]=“X”):
打印(“你已经猜到了。”)
其他:
打印(“你错过了我的战舰!”)
棋盘[猜一排][猜一列]=“X”
如果(i==3):
打印(“游戏结束”)
印刷电路板

运行此操作时,在board[guess_row][guess_col]=“X”处出现错误,因此问题是如何在这两个索引处插入字符串X?

board
是五个5字符字符串的列表。您正试图分配给现有字符串中的特定字符,即,对字符串对象进行变异。这是不可能的,因为Python中的字符串是(也提到了这一点)


board
是五个5字符字符串的列表。您正试图分配给现有字符串中的特定字符,即,对字符串对象进行变异。这是不可能的,因为Python中的字符串是(也提到了这一点)


关于错误代码的问题应该始终包括完整的错误消息和回溯,以及代码应该做什么的描述。您还应该将您的代码简化为一个。这个问题包括许多与您的问题无关的cod。关于错误代码的问题应该始终包括完整的错误消息和回溯,以及代码应该做什么的描述。您还应该将您的代码简化为一个。这个问题包括很多与你的问题无关的cod。
In [1]: row = '0' * 5

In [2]: row
Out[2]: '00000'

In [3]: row[3] = 'X'
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-3-954d03c86f5a> in <module>()
----> 1 row[3] = 'X'

TypeError: 'str' object does not support item assignment
In [4]: row = ['0'] * 5

In [5]: row
Out[5]: ['0', '0', '0', '0', '0']

In [6]: row[3] = 'X'

In [7]: row
Out[7]: ['0', '0', '0', 'X', '0']