大小为n * n 的田字格输出(Python)

226 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

任意大小的田字格输出

利用函数做到代码模块化,提高重复利用效率,并且,使代码更容易理解

a函数用来输出行 b函数用于列上的 " | " 输出。 我目前没找到 " - " 这个符号怎么把他转过来,所以就用 " | " 这个先代替,格式可以直接替换

核心要点 : 一行个数为 n 个的田字格,总共有 n + 1 个 " + " 号,每两个 " + " 之间有4个 " - " 号

做法: 每输出一个 " + " 符号时,输出4个 " - " 符号,这个便构成了一个二重循环,而 " | " 这个符号相当于在 " + " 符号处输出,但是需要当做每一行来输出(即:当前行数在上下两个 " + " 之间的时候只输出 " | " 这个符号),因为输出的时候光标是是一行一行过的,没法一列竖着过,每个输出语句后面都有end和sep两个选项进行了修改,防止因为格式问题导致输出错误,print语句是默认会换行的,详细情况请查询print的语法

def a(n):
    for i in range(0,n):
        print("+",end='',sep='')
        for j in range(0,4):
            print("-",end='',sep='')
    print("+")

def b(n):
        for i in range(0,4):
            print("|\n",end='',sep='')
            

n = int(input("Please input the size: "))
for i in range(0,n):
    a(n)
    for j in range(0,4):
        for k in range(0,((4 * n) + n + 1),5):
            print("|    ",end='',sep='')
        print("\n",end='',sep='')
a(n)

分割线

for k in range(0,((4 * n) + n + 1),5):

这一句是为了适应长度为 n 的时候写的,长度为 n 的时候,每一个 " + " 所在的位置构成了一个首项为1 公差为4 的等差数列,通项公式根据等差数列的相关公式很好写,所以步长设置为5

for j in range(0,4):

而这一个相当于是上下两个 " + " 之间的行数,上下之间相差的行数为4,需要进行4次操作,总共是n次。