Skip to main content
 首页 » 编程设计

python之如何使用循环在 python 3.5 中制作菱形文本模式

2025年05月04日9飞鱼

如标题所述,我正在寻找使用 python 3.5 制作菱形文本图案的方法,但我对如何使形状正常工作有点困惑。

期望的输出:

                   S 
                  SAS 
                 SAMAS 
                SAMPMAS 
               SAMPLPMAS 
              SAMPLELPMAS 
               SAMPLPMAS 
                SAMPMAS 
                 SAMAS 
                  SAS 
                   S 

代码:

word=input("Enter characters: ") 
length=len(word) 
for i in range (0, length): 
    for j in range(length-i-1): 
        print(' ', end="") 
    for j in range(0, i+1): 
        print(word[j], end="") 
    for k in range (i-1, -1, -1): 
        print (word[k], end="") 
    print() 
for l in range (1,length): 
    for j in range(l) : 
        print(' ', end="") 
    for m in range (0,length-l-1): 
        print(word[m], end ="") 
    for n in range (length-l-1,-1,-1): 
        print(word[n], end="") 

当前输出:

      f 
     fof 
    fooof 
   fooboof 
  foobaboof 
 foobaraboof 
  foobaboof  fooboof   fooof    fof     f 

请您参考如下方法:

怎么样

import itertools 
l = len(word) 
for j in itertools.chain(range(l), reversed(range(l-1))): 
    print(word[0:j].rjust(l) + word[j::-1]) 

它给出了您正在寻找的输出。这使用 rjust 字符串方法在缩短的单词之前正确填充空格,并使用扩展切片来获取字符串的反转部分。