无法在双 for 循环中打印字符串的每一行 python
Trouble printing each line of a string inside a double for loop python
所以我正在 python 开发我的第一个终端游戏作为练习,但我无法让终端中的输出符合我的要求。
实例变量:
board = []
board_size = 10
alphabet = "ABCDEFGHIJ"
代码片段:
def create_board():
for i in range(0, board_size):
board.append(["."] * board_size)
print_board(board)
def print_board(board):
count = 0
while count < 10:
for i in board:
board_layout = alphabet[count] + " " + " ".join(i)
continue
count += 1
print(board_layout)
def main():
create_board()
终端输出:
J . . . . . . . . . .
J . . . . . . . . . .
J . . . . . . . . . .
J . . . . . . . . . .
J . . . . . . . . . .
J . . . . . . . . . .
J . . . . . . . . . .
J . . . . . . . . . .
J . . . . . . . . . .
J . . . . . . . . . .
J . . . . . . . . . .
所需的输出应该是 A - J 并且每个字母都有点。
请让我知道我应该尝试什么。
我尝试过的其他尝试:
for letter in alphabet:
for i in board:
board_layout = letter + " " + " ".join(i)
continue
print(board_layout)
for j in range(len(alphabet)):
for i in board:
board_layout = alphabet[j] + " " + " ".join(i)
print(board_layout)
我也尝试过切换 for 循环的顺序,但没有成功。
这样做怎么样:-
BS = 10
ALPHA = 'ABCDEFGHIJ'
A = [[c]+['.' for _ in range(BS)] for c in ALPHA]
A.append([' ']+[x for x in range(BS)])
for r in A:
print(*r)
试试看(简短):
board_size = 10
alphabet = "ABCDEFGHIJ"
dots = ' .' * board_size
for a in alphabet:
print(f'{a} {dots}')
说明:当您将一个字符串乘以一个数字时,该字符串将重复该次数。例如,'a' * 3
变为 'aaa'
。
试试这个:
>>> BS = 10
>>> ALPHA = 'ABCDEFGHIJ'
>>> print(*[c + ' .'*BS for c in ALPHA], sep='\n')
A . . . . . . . . . .
B . . . . . . . . . .
C . . . . . . . . . .
D . . . . . . . . . .
E . . . . . . . . . .
F . . . . . . . . . .
G . . . . . . . . . .
H . . . . . . . . . .
I . . . . . . . . . .
J . . . . . . . . . .
所以我正在 python 开发我的第一个终端游戏作为练习,但我无法让终端中的输出符合我的要求。
实例变量:
board = []
board_size = 10
alphabet = "ABCDEFGHIJ"
代码片段:
def create_board():
for i in range(0, board_size):
board.append(["."] * board_size)
print_board(board)
def print_board(board):
count = 0
while count < 10:
for i in board:
board_layout = alphabet[count] + " " + " ".join(i)
continue
count += 1
print(board_layout)
def main():
create_board()
终端输出:
J . . . . . . . . . .
J . . . . . . . . . .
J . . . . . . . . . .
J . . . . . . . . . .
J . . . . . . . . . .
J . . . . . . . . . .
J . . . . . . . . . .
J . . . . . . . . . .
J . . . . . . . . . .
J . . . . . . . . . .
J . . . . . . . . . .
所需的输出应该是 A - J 并且每个字母都有点。 请让我知道我应该尝试什么。
我尝试过的其他尝试:
for letter in alphabet:
for i in board:
board_layout = letter + " " + " ".join(i)
continue
print(board_layout)
for j in range(len(alphabet)):
for i in board:
board_layout = alphabet[j] + " " + " ".join(i)
print(board_layout)
我也尝试过切换 for 循环的顺序,但没有成功。
这样做怎么样:-
BS = 10
ALPHA = 'ABCDEFGHIJ'
A = [[c]+['.' for _ in range(BS)] for c in ALPHA]
A.append([' ']+[x for x in range(BS)])
for r in A:
print(*r)
试试看(简短):
board_size = 10
alphabet = "ABCDEFGHIJ"
dots = ' .' * board_size
for a in alphabet:
print(f'{a} {dots}')
说明:当您将一个字符串乘以一个数字时,该字符串将重复该次数。例如,'a' * 3
变为 'aaa'
。
试试这个:
>>> BS = 10
>>> ALPHA = 'ABCDEFGHIJ'
>>> print(*[c + ' .'*BS for c in ALPHA], sep='\n')
A . . . . . . . . . .
B . . . . . . . . . .
C . . . . . . . . . .
D . . . . . . . . . .
E . . . . . . . . . .
F . . . . . . . . . .
G . . . . . . . . . .
H . . . . . . . . . .
I . . . . . . . . . .
J . . . . . . . . . .