如标题所述,我正在寻找使用 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 字符串方法在缩短的单词之前正确填充空格,并使用扩展切片来获取字符串的反转部分。
