-2

我对 Python 很陌生,并且得到了以下练习。

编写一个程序,按以下方式打印整个棋盘:

A1 A2 A3 A4 A5 A6 A7 A8
B1 B2 B3 B4 B5 B6 B7 B8
C1 C2 C3 C4 C5 C6 C7 C8
D1 D2 D3 D4 D5 D6 D7 D8
E1 E2 E3 E4 E5 E6 E7 E8
F1 F2 F3 F4 F5 F6 F7 F8
G1 G2 G3 G4 G5 G6 G7 G8
H1 H2 H3 H4 H5 H6 H7 H8

到目前为止,这就是我所做的:

letter_fields=["A", "B", "C", "D","E","F", "G", "H"]
number_fields=["1", "2", "3", "4", "5", "6", "7", "8"]

for letter in letter_fields:
    for number in number_fields:
        print (letter+number, end="")

所以我现在已经水平打印了所有内容,但不知道如何将它变成特定的行。我尝试在打印行中添加空格,但是,不能完全对齐。这意味着不需要任何太复杂的东西就可以完成,因为这只是第 4 课。任何帮助表示赞赏!

4

2 回答 2

4

鉴于您可能已经学过,您可以使用空格作为 的end参数print,并在每个内部循环完成后打印一个新行:

for letter in letter_fields:
    for number in number_fields:
        print (letter+number, end=" ")
    print()
于 2020-04-28T16:42:42.830 回答
0

@blhsing为您当前的代码提供了一个很好的解决方案。

另一种解决方案是遍历每个字母,使用列表推导构建水平行,它们使用以下命令在每行上打印连接坐标str.join

for letter in letter_fields:
    row = [letter + number for number in number_fields]
    print(" ".join(row))

输出:

A1 A2 A3 A4 A5 A6 A7 A8
B1 B2 B3 B4 B5 B6 B7 B8
C1 C2 C3 C4 C5 C6 C7 C8
D1 D2 D3 D4 D5 D6 D7 D8
E1 E2 E3 E4 E5 E6 E7 E8
F1 F2 F3 F4 F5 F6 F7 F8
G1 G2 G3 G4 G5 G6 G7 G8
H1 H2 H3 H4 H5 H6 H7 H8
于 2020-04-28T16:46:27.850 回答