python - 用嵌套循环绘制棋盘
问题描述
我有一个我无法弄清楚的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
我知道这应该很简单,但我就是想不通。
解决方案
尝试这个
letters = 'abcdefgh'
for i in range(8, 0, -1):
for letter in letters:
print(letter + str(i), end = ' ')
print()
这里的关键是让letters
变量包含从a
to的字母h
。有了for x in iterable
您可以迭代iterable
具有的元素。字符串是可迭代的,其中每个项目都是单个字符(在 python 中也是一个长度为 1 的字符串),因此它使迭代结构更容易。如果你想知道,是的,你也可以有一个numbers = '87654321'
变量来for number in numbers
代替for i in range(8, 0, -1)
. 希望这对您将来遇到类似问题有所帮助。
推荐阅读
- java - Java (Android):根据 JWA (RFC 7518) 的 Diffie-Hellman 密钥交换过程
- php - 使用另一个值数组对数组进行排序
- c++ - 我怎样才能为每个编译的程序/动态库完成一个对象的单个实例?
- aframe - 如何在 A-frame 中创建滚动文本
- css - 使图像在具有固定高度的网格中响应
- powershell - PowerShell - 读取 SharePoint 文件属性(修改日期等)
- mongodb - 如何使用mongo查询在mongodb中存储的json数据的特定属性中查找特殊字符
- c - C中的多线程矩阵乘法
- applescript - Applescript 工具:根据团队成员姓名将文件复制到预设目录
- javascript - 无法从 Firebase 更新和删除对象