任意大小的田字格输出

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

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次。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐