格式化输出是程序员的必备技能
先上输出结果:
观察不难看出,棋盘由三部分组成,分别是行信息,列信息和中间的内容数据。因此代码也分这三部分逻辑
canvas = "" # 新建一个空字符串当作画布
for i in range(self.size + 1): # 遍历每一行,self.size为数组的行数
if i == 0: # 第一行为列信息, 需要单独处理
canvas += ' '
else:
canvas += str(i) + " " # 剩余的行需要有列信息
for j in range(self.size):
if i == 0: # 第一行打印所有的列信息
canvas += " " + str(j) + " "
else: # 如果不是第一行
if self.square[i-1][j] == 0: # 把0替换成. 这部分可以删除
val = "."
else:
val = str(self.square[i-1][j]) # 如果不是零就直接将数字转换为字符串
if self.square[i-1][j] <= 9: # 判断数字是一位还是两位,如果是两位只需要补一个空格
canvas += "| " + val + " "
else:
canvas += "| " + val + " "
if j == self.size - 1: # 最后需要补一个"|"
canvas += "|"
canvas += "\n" + " " + "+" + (self.size*5 - 1) * "-" + "+" + "\n" # 每一行的后面需要输出分隔符
print(canvas) # 打印画布字符串
以上就是画棋盘的代码。