上一篇
Python编程入门:输出国际象棋棋盘教程 | Python基础教学
- Python
- 2025-08-04
- 1690
Python编程入门:输出国际象棋棋盘
学习编程最好的方式是通过有趣的项目实践。在本教程中,我们将使用Python创建一个国际象棋棋盘,既可以在控制台输出文本版本,也可以生成HTML表格版本。通过这个项目,你将掌握Python的基础循环、条件判断和字符串操作。
国际象棋棋盘的特点
国际象棋棋盘是一个8×8的方格矩阵,具有以下特征:
- 由64个方格组成(8行×8列)
- 方格颜色交替排列(通常为黑白交替)
- 左上角方格为黑色或白色(取决于棋盘方向)
- 每个方格可以用坐标表示,如a1, b2等
方法1:控制台文本输出
首先,我们创建一个在控制台输出的文本版本棋盘:
def print_text_chessboard():
"""在控制台输出文本格式的国际象棋棋盘"""
print("文本格式国际象棋棋盘:")
for row in range(8):
for col in range(8):
# 判断方格颜色:当行号+列号为偶数时输出黑色方格
if (row + col) % 2 == 0:
print("■", end=" ") # 黑色方格
else:
print("□", end=" ") # 白色方格
print() # 换行
# 调用函数
print_text_chessboard()
输出结果示例:
■ □ ■ □ ■ □ ■ □
□ ■ □ ■ □ ■ □ ■
■ □ ■ □ ■ □ ■ □
□ ■ □ ■ □ ■ □ ■
■ □ ■ □ ■ □ ■ □
□ ■ □ ■ □ ■ □ ■
■ □ ■ □ ■ □ ■ □
□ ■ □ ■ □ ■ □ ■
□ ■ □ ■ □ ■ □ ■
■ □ ■ □ ■ □ ■ □
□ ■ □ ■ □ ■ □ ■
■ □ ■ □ ■ □ ■ □
□ ■ □ ■ □ ■ □ ■
■ □ ■ □ ■ □ ■ □
□ ■ □ ■ □ ■ □ ■
方法2:生成HTML棋盘
现在让我们创建一个更直观的HTML版本棋盘,使用Python生成HTML表格:
def generate_html_chessboard():
"""生成HTML格式的国际象棋棋盘"""
html = "<table style='border-collapse: collapse; margin: 20px auto;'>"
for row in range(8):
html += "<tr>"
for col in range(8):
# 设置方格颜色
color = "black" if (row + col) % 2 == 0 else "white"
# 添加坐标标签
coord = f"{chr(97 + col)}{8 - row}"
# 创建表格单元格
html += f"<td style='width: 50px; height: 50px; background-color: {color}; color: {'white' if color == 'black' else 'black'}; text-align: center; font-weight: bold;'>{coord}</td>"
html += "</tr>"
html += "</table>"
return html
# 使用示例
chessboard_html = generate_html_chessboard()
print(chessboard_html) # 输出HTML代码,可在浏览器中显示
代码解析
让我们分解上面的代码,理解其工作原理:
1. 循环结构
使用嵌套循环遍历棋盘的每个位置:
- 外层循环:
for row in range(8)
处理8行 - 内层循环:
for col in range(8)
处理每行的8列
2. 方格颜色判断
使用数学方法确定方格颜色:
(row + col) % 2 == 0
- 行号+列号为偶数时返回True- 这种算法确保相邻方格颜色不同
3. 坐标系统
为每个方格添加坐标标签:
- 列号转换为字母:
chr(97 + col)
(97是'a'的ASCII码) - 行号:
8 - row
确保a1在左下角(国际象棋标准)
完整代码示例
下面是完整的Python程序,包含两种棋盘输出方法:
def print_text_chessboard():
"""在控制台输出文本格式的国际象棋棋盘"""
print("文本格式国际象棋棋盘:")
for row in range(8):
for col in range(8):
# 判断方格颜色
if (row + col) % 2 == 0:
print("■", end=" ")
else:
print("□", end=" ")
print()
def generate_html_chessboard():
"""生成HTML格式的国际象棋棋盘"""
html = "<table style='border-collapse: collapse; margin: 20px auto;'>"
for row in range(8):
html += "<tr>"
for col in range(8):
# 设置方格颜色
color = "black" if (row + col) % 2 == 0 else "white"
# 添加坐标标签
coord = f"{chr(97 + col)}{8 - row}"
# 创建表格单元格
html += f"<td style='width: 50px; height: 50px; background-color: {color}; color: {'white' if color == 'black' else 'black'}; text-align: center; font-weight: bold;'>{coord}</td>"
html += "</tr>"
html += "</table>"
return html
# 主程序
if __name__ == "__main__":
# 输出文本棋盘
print_text_chessboard()
# 生成HTML棋盘
chessboard_html = generate_html_chessboard()
# 保存到HTML文件
with open("chessboard.html", "w", encoding="utf-8") as f:
f.write("<!DOCTYPE html>")
f.write("<html><head><title>Python生成的国际象棋棋盘</title></head><body>")
f.write("<h1 style='text-align:center;'>Python生成的国际象棋棋盘</h1>")
f.write(chessboard_html)
f.write("</body></html>")
print("HTML棋盘已保存为 chessboard.html")
实际效果展示
下面是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 |
学习收获
通过本教程,你学会了:
- 使用Python嵌套循环遍历二维网格
- 利用模运算实现交替模式
- 在控制台输出格式化文本
- 生成HTML内容并保存为文件
- 理解国际象棋棋盘的坐标系统
扩展练习
尝试以下挑战,巩固所学知识:
- 修改程序,使左上角为白色而不是黑色
- 添加功能让用户指定棋盘大小(如10×10)
- 在棋盘中添加国际象棋棋子(用字母表示)
- 创建一个函数判断给定坐标的方格颜色
- 将棋盘方向改为白方在底部(a1为黑格)
学习提示
这个项目是学习Python循环和条件语句的绝佳练习。通过可视化输出,你可以直观地理解代码逻辑。尝试修改代码中的变量,观察棋盘变化,这是学习编程的最佳方式!
本文由CaoWa于2025-08-04发表在吾爱品聚,如有疑问,请联系我们。
本文链接:https://www.521pj.cn/20257247.html
发表评论