
本文介绍如何利用 f-string 和三引号字符串,将井字棋棋盘的绘制逻辑封装为单个变量,避免重复调用 print,提升代码简洁性与可维护性。
本文介绍如何利用 f-string 和三引号字符串,将井字棋棋盘的绘制逻辑封装为单个变量,避免重复调用 print,提升代码简洁性与可维护性。
在实现井字棋(Tic-Tac-Toe)游戏时,清晰美观的棋盘显示是基础体验之一。原始写法往往通过多次 print() 分行输出边框和格子内容,代码冗长且难以复用。其实,Python 提供了更优雅的解决方案:使用 f-string 结合三引号多行字符串(f'''...'''),即可将整个棋盘结构(含动态数据)一次性赋值给一个变量,并直接打印。
以下是一个简洁、可读性强的实现示例:
board_list = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
board_representation = f'''\
+-----------+
| {board_list[0][0]} | {board_list[0][1]} | {board_list[0][2]} |
+-----------+
| {board_list[1][0]} | {board_list[1][1]} | {board_list[1][2]} |
+-----------+
| {board_list[2][0]} | {board_list[2][1]} | {board_list[2][2]} |
+-----------+
'''
print(board_representation)
✅ 关键技巧说明:
f'''...'''支持跨行字符串 + 内联表达式求值,使逻辑与呈现分离;- 开头的
\可消除首行换行符,确保输出顶部无空行;- 每个
{...}中直接访问二维列表元素,无需额外格式化函数(如str()),Python 自动转换;- 边框长度(如
+-----------+)建议统一为 11 字符,适配单数字居中对齐(若后续填入'X'/'O',仍保持视觉平衡)。
⚠️ 注意事项:
- 若需支持任意大小棋盘(如 4×4),应改用循环生成字符串,而非硬编码行列;
- 当前方案适用于静态展示;若棋盘内容频繁更新,建议封装为函数(如
def render_board(board):),提高复用性; - 注意空格控制:f-string 中的空格会原样保留,建议在
|前后各留一个空格以保证对齐美观。
综上,借助 f-string 的表达力,你不仅能将“整块棋盘”压缩为一个变量,还能让代码更具声明式风格——关注 “要显示什么”,而非 “如何逐行打印”。这是迈向清晰、可维护游戏逻辑的重要一步。
Python免费学习笔记(深入):立即使用
在学习笔记中,你将探索 Python 的核心概念和高级技巧!











