Python 连接str和int时发生连接iterable错误

Python 连接str和int时发生连接iterable错误,python,join,iterable,Python,Join,Iterable,我正在写一个战舰游戏,第一行数字是1-10,第二行字母是“o”。不幸的是,我无法加入这些数字,因为一个错误“只能加入一个iterable”一直在闪烁 你能告诉我怎么修吗 board = list(range(10)) for x in range(10): board.append(["O"] * 10) def print_board(board): for row in board: print (" ".join(row)) print_board(b

我正在写一个战舰游戏,第一行数字是1-10,第二行字母是“o”。不幸的是,我无法加入这些数字,因为一个错误“只能加入一个iterable”一直在闪烁

你能告诉我怎么修吗

board = list(range(10))

for x in range(10):
    board.append(["O"] * 10)

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

print_board(board)

您的根本问题是,您的第一行不是列表的列表,因此,当您附加到它时,您没有得到您想要的

但有点不清楚你在追求什么。您是希望在整个矩阵中包含字符串,还是希望在顶行中包含整数

所有字符串:

board = [[str(n) for n in range(1, 11)]] + [list('0'*10)] * 10

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

print_board(board)
board = [range(1, 11)] + [list('0' * 10)] * 10

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

print_board(board)
1 2 3 4 5 6 7 8 9 10
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
顶行中的整数:

board = [[str(n) for n in range(1, 11)]] + [list('0'*10)] * 10

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

print_board(board)
board = [range(1, 11)] + [list('0' * 10)] * 10

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

print_board(board)
1 2 3 4 5 6 7 8 9 10
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
结果:

board = [[str(n) for n in range(1, 11)]] + [list('0'*10)] * 10

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

print_board(board)
board = [range(1, 11)] + [list('0' * 10)] * 10

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

print_board(board)
1 2 3 4 5 6 7 8 9 10
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0

在错误发生之前尝试打印
board
——提示:这不是您所认为的。你真的应该学习。