疯狂python讲义第4章第11题
程序员文章站
2022-07-12 22:55:14
...
没转换成字母,就按数字来做
--------5--------
------5-4-5------
----5-4-3-4-5----
–5-4-3-2-3-4-5–
5-4-3-2-1-2-3-4-5
–5-4-3-2-3-4-5–
----5-4-3-4-5----
------5-4-5------
--------5--------
思路是把整体分为两部分,第一部分是前n行,第二部分是n+1到2n-1行。
然后每一行又分为4个部分,第一部分是左边的‘—’;第二部分是n的倒序插入‘-’,可用列表或字符串实现;第三部分是n的顺序插入‘-’,第二和第三部分可先合并在一起再插入‘-’;第四部分是右边的‘----’。
n=5
#上半部分,把每一列分为4部分打印出来
for i in range(n):
#第一部分
print('-'*(2*n-2*i-2),end='')
#第二部分
a=''
for j in range(n,n-i-1,-1):
a+=str(j)
#第三部分
for k in range(n-i+1,n+1):
a+=str(k)
print('-'.join(a),end='')
#第四部分
print('-'*(2*n-2*i-2))
#下半部分
for i in range(n-1):
print('-'*(2*i+2),end='')
b=''
for j in range(n,i+1,-1):
b+=str(j)
for k in range(i+3,n+1):
b+=str(k)
print('-'.join(b),end='')
print('-'*(2*i+2))
上一篇: 类成员的初始化
下一篇: The try Block
推荐阅读