我一直在尝试打印设计师门垫,但无法获得理想的结果。垫子只能包含这些 | ,-,。特殊字符。 这里N是行数,其中M是宽度。在两者之间应显示“欢迎”。
我的代码:
N, M = 4, 12
for i in range(1, N, 2):
print(str(".|." * i).center(M, '-'))
print("WELCOME".center(M, '-'))
for i in range(N-2, -1, -2):
print(str(".|." * i).center(M,"-"))
我的结果:
----.|.-----
-.|..|..|.--
--WELCOME---
---.|..|.---
------------
所需的输出:
----.|.-----
-.|..|..|.--
--WELCOME---
-.|..|..|.--
----.|.-----
答案 0 :(得分:1)
组装顶部零件,将其与欢迎纸一起打印,然后将底部的背面打印为底部,可能更容易吗?
N, M = 4, 12
top = [('.|.' * i).center(M, '-') for i in range(1, N, 2)]
print(*top, 'WELCOME'.center(M, '-'), *top[::-1], sep='\n')
给你:
----.|.-----
-.|..|..|.--
--WELCOME---
-.|..|..|.--
----.|.-----
比起使用列表切片,更明确的一点是使用reversed
,在功能上相同,但阅读起来更容易,例如:
print(*top, 'WELCOME'.center(M, '-'), *reversed(top), sep='\n')
答案 1 :(得分:0)
s = input()
lst = s.split();
n = int(lst[0])
m = int(lst[1])
s= ['.|.','WELCOME']
n1 = (n-1)//2
for i in range(1,2*n1, 2):
print((s[0]*i).center(m, '-'))
print(s[1].center(m,'-'))
for i in range(((2*n1)-1), 0,-2):
print((s[0]*i).center(m, '-'))