首页 > 解决方案 > 用嵌套循环绘制棋盘

问题描述

我有一个我无法弄清楚的python作业。我的任务是使用嵌套循环创建一个纯文本棋盘,并在运行时生成以下输出:

a8 b8 c8 d8 e8 f8 g8 h8
a7 b7 c7 d7 e7 f7 g7 h7
a6 b6 c6 d6 e6 f6 g6 h6
a5 b5 c5 d5 e5 f5 g5 h5
a4 b4 c4 d4 e4 f4 g4 h4
a3 b3 c3 d3 e3 f3 g3 h3
a2 b2 c2 d2 e2 f2 g2 h2
a1 b1 c1 d1 e1 f1 g1 h1

到目前为止,我有:

for i in range(8, 0, -1):
    for j in range(8, 0, -1):
        print("a", i, end=" ")
        print("b", j, end="")
 print()

这使:

a 8 b 8a 8 b 7a 8 b 6a 8 b 5a 8 b 4a 8 b 3a 8 b 2a 8 b 1
a 7 b 8a 7 b 7a 7 b 6a 7 b 5a 7 b 4a 7 b 3a 7 b 2a 7 b 1
a 6 b 8a 6 b 7a 6 b 6a 6 b 5a 6 b 4a 6 b 3a 6 b 2a 6 b 1
a 5 b 8a 5 b 7a 5 b 6a 5 b 5a 5 b 4a 5 b 3a 5 b 2a 5 b 1
a 4 b 8a 4 b 7a 4 b 6a 4 b 5a 4 b 4a 4 b 3a 4 b 2a 4 b 1
a 3 b 8a 3 b 7a 3 b 6a 3 b 5a 3 b 4a 3 b 3a 3 b 2a 3 b 1
a 2 b 8a 2 b 7a 2 b 6a 2 b 5a 2 b 4a 2 b 3a 2 b 2a 2 b 1
a 1 b 8a 1 b 7a 1 b 6a 1 b 5a 1 b 4a 1 b 3a 1 b 2a 1 b 1

我知道这应该很简单,但我就是想不通。

标签: python

解决方案


尝试这个

letters = 'abcdefgh'
for i in range(8, 0, -1):
    for letter in letters:
        print(letter + str(i), end = ' ')
    print()

这里的关键是让letters变量包含从ato的字母h。有了for x in iterable您可以迭代iterable具有的元素。字符串是可迭代的,其中每个项目都是单个字符(在 python 中也是一个长度为 1 的字符串),因此它使迭代结构更容易。如果你想知道,是的,你也可以有一个numbers = '87654321'变量来for number in numbers代替for i in range(8, 0, -1). 希望这对您将来遇到类似问题有所帮助。


推荐阅读