📜  打印门垫图案的程序,该图案在Python的中心写有一个字符串

📅  最后修改于: 2022-05-13 01:54:28.100000             🧑  作者: Mango

打印门垫图案的程序,该图案在Python的中心写有一个字符串

给定行数 R 和列数 C,任务是打印门垫图案,如下例所示。垫子设计中的列数必须是设计中行数的 3 倍。门垫中间应该印有 GeeksforGeeks。垫子的宽度等于图案中的列数。
请注意,字符串“GeeksforGeeks”包含 13 个奇数字符,因此行数必须是奇数才能通过保持对称性正确设计垫子。

例子:

Input: R = 11, C = 33 
Output:
    ---------------|*|---------------
    ------------|*||*||*|------------
    ---------|*||*||*||*||*|---------
    ------|*||*||*||*||*||*||*|------
    ---|*||*||*||*||*||*||*||*||*|---
    ----------GeeksforGeeks----------
    ---|*||*||*||*||*||*||*||*||*|---
    ------|*||*||*||*||*||*||*|------
    ---------|*||*||*||*||*|---------
    ------------|*||*||*|------------
    ---------------|*|---------------

Input: R = 9, C = 27
Output:
    ------------|*|------------
    ---------|*||*||*|---------
    ------|*||*||*||*||*|------
    ---|*||*||*||*||*||*||*|---
    -------GeeksforGeeks-------
    ---|*||*||*||*||*||*||*|---
    ------|*||*||*||*||*|------
    ---------|*||*||*|---------
    ------------|*|------------

方法:整个图案可以分为3个不同的部分。第一部分包含具有三角形的图案。第二部分包含一个字符串“GeeksforGeeks”,第三部分包含一个具有倒三角形的模式。通过使用内置的字符串对齐功能,可以轻松打印出具有顶部和倒三角形的图案。

  1. ljust :此方法返回一个长度为 l 的左对齐字符串。
  2. center :此方法返回长度为 l 的中心对齐字符串。
  3. rjust :此方法返回一个长度为 l 的右对齐字符串。

下面是上述方法的实现:

# Python3 implementation of the approach
  
# Function to print the doormat pattern
def doormatPattern(rows, columns):
    width = columns
      
    # Print the pattern having a top triangle
    for i in range (0, int (rows / 2)):
        pattern = "|*|" * ((2 * i) + 1)
        print (pattern.center (width, '-'))
      
    # Print GeeksforGeeks in the center
    print ("GeeksforGeeks".center (width, '-'))
      
    # Print the pattern having 
    # an inverted triangle
    i = int (rows / 2)
    while i > 0:
        pattern = "|*|" * ((2 * i) - 1)
        print (pattern.center (width, '-'))
        i = i-1
    return
  
# Driver code
rows = 7
columns = rows * 3
doormatPattern(rows, columns)
输出:
---------|*|---------
------|*||*||*|------
---|*||*||*||*||*|---
----GeeksforGeeks----
---|*||*||*||*||*|---
------|*||*||*|------
---------|*|---------