使用Python编辑器,我试图在这里重新创建这个特定的线条模式:
666666
6 6
6 6
6 6
66
6
这是我创建的代码:
steps=6
for s in range(steps):
print('6' + (' ' * r) + '6')
然而,我得到的输出是:
66
6 6
6 6
6 6
6 6
6 6
因此,你可以看到它几乎与我在上面的开放输出中想要的操作相反。如果有办法扭转这个输出,我必须得到我想要的,请分享。
答案 0 :(得分:0)
您可以使用内置的reversed
函数返回一个反向遍历范围的迭代器。
steps=6
for r in reversed(range(steps)):
print('#' + (' ' * r) + '#')
或者您可以使用列表拼接来反转列表,如下所示:
steps=6
for r in range(steps)[::-1]:
print('#' + (' ' * r) + '#')
答案 1 :(得分:0)
除了Martijn关于考虑你需要遵循什么样的模式的评论,即空格的数量如何从一行演变到下一行,你可能想要查看命令的文档{{1在PythonDocs on range()。目前您只提供一个参数:
range
然后,Python将使用剩余参数的默认值: range(stop)
和start=0
。但是,您可以明确地提供这些。步骤'参数是你可以进行反向计数的地方:
step=1
答案 2 :(得分:-1)
让我们从按升序排列开始,如下图
6
66
6 6
6 6
66666
有一系列的空格数取决于高度= 1,即高度= 2,空格数有系列0,1,2等等,因此如果高度为n则系列开始于2其中空间= 0并且在n - 1处结束,其中空格的数量等于n - 3,并且在高度= n时,6的数量等于n - 2.
这个代码是
def print6(height):
... print 6
... for s in range(0, height - 2):
... print str(6) + ' '*s + str(6)
... print str(6)*2+str(6)*(height-2)
要扭转这个
def print6(height):
... print str(6)*2+str(6)*(height-2)
... for s in range(0, height - 2):
... print str(6) + ' '*(height-3-s) + str(6)
... print 6