看起来您在每一行的开头都缺少了等于length - i - 1或length - l - 1空格的填充。在
def print_row(i, l):
print(" " * (l - i - 1), 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 i in range(0, length):
print_row(i, length)
for l in range(length, -1, -1):
print_row(l, length)
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 (length, 0, -1):
for j in range(length-l+1):
print(' ', end="")
for m in range (l-1, 0, -1):
print(word[m], end ="")
for n in range (0, i-1):
print(word[n], end="")
print()
不幸的是,这不是代码中唯一的问题。当你测试它时,你会得到一颗钻石,如:
^{pr2}$
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="")
print()
打印:
f
fof
fooof
fooboof
foobaboof
foobaraboof
foobaboof
fooboof
fooof
fof
f
看起来您在每一行的开头都缺少了等于
length - i - 1
或length - l - 1
空格的填充。在编辑:简化循环
你几乎已经自己解决了,唯一缺少的是每行前面的空格。现在第一行前面有n-1空格,n是字符串的长度,第二行前面有n-2空格,依此类推,直到我们到达中间。中间线前面不应包含空格。在
当我们到达中间位置后,我们再次一次增加一个标题空格的数量。在
不幸的是,这不是代码中唯一的问题。当你测试它时,你会得到一颗钻石,如:
^{pr2}$打印:
怎么样
你正在寻找的输出。它使用
rjust
string方法适当地填充缩短单词之前的空格,并使用扩展切片来获得字符串的反向部分。在相关问题 更多 >
编程相关推荐