使用字符打印设计门垫纹理的 Python 程序

pythonserver side programmingprogramming更新于 2025/12/19 3:56:17

假设我们有两个数字 n 和 m,m 是 n 的倍数。我们必须绘制一个门垫图案,中间有一个单词"WELCOME"。垫子尺寸为 n x m。我们必须使用点 (.)、连字符 (-)、管道符号 (|) 和中间的文本来制作这个垫子。

因此,如果输入为 n = 5 m = 15,则输出将是

------.|.------
---.|..|..|.---
----WELCOME----
---.|..|..|.---
------.|.------

要解决这个问题,我们将遵循以下步骤 −

  • 对于 1 到 n-1 范围内的 i,增加 2,执行
    • print((m-i*3)/2) 个 '-' 的整数,然后是 i 个 '.|.' 然后是整数((m-i*3)/2) 个 '-' 的数量
  • print(((m-7)/2) 个 '-' 的整数,然后 'WELCOME',然后是 ((m-7)/2) 个 '-' 的整数)
  • 对于 n-2 到 -1 范围内的 i,减少 2,执行
    • print(((m-i*3)/2) 个 '-' 的整数,然后是 i 个 '.|.',然后是 ((m-i*3)/2) 个 '-' 的整数

示例

让我们看看下面的实现以便更好地理解

def solve(n, m):
   for i in range(1,n,2):
      print ('-'*int((m-i*3)/2)+'.|.'*i+'-'*int((m-i*3)/2))

   print('-'*int((m-7)/2)+'WELCOME'+'-'*int((m-7)/2))

   for i in range(n-2,-1,-2):
      print ('-'*int((m-i*3)/2)+'.|.'*i+'-'*int((m-i*3)/2))

n = 15
m = 45
solve(n, m)

输入

15,45

输出

---------------------.|.---------------------
------------------.|..|..|.------------------
---------------.|..|..|..|..|.---------------
------------.|..|..|..|..|..|..|.------------
---------.|..|..|..|..|..|..|..|..|.---------
------.|..|..|..|..|..|..|..|..|..|..|.------
---.|..|..|..|..|..|..|..|..|..|..|..|..|.---
-------------------WELCOME-------------------
---.|..|..|..|..|..|..|..|..|..|..|..|..|.---
------.|..|..|..|..|..|..|..|..|..|..|.------
---------.|..|..|..|..|..|..|..|..|.---------
------------.|..|..|..|..|..|..|.------------
---------------.|..|..|..|..|.---------------
------------------.|..|..|.------------------
---------------------.|.---------------------

相关文章


有用资源