我正在尝试编写一个战舰游戏,第一行中的数字为1-10,字母为#34; o"在另一个10.不幸的是,我无法加入数字,因为错误"只能加入一个可迭代的"一直在闪烁。
你能告诉我如何解决它吗?
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)
答案 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