对于编码类中的作业,我应该找到一种方法来让Python制作一个星号三角形,如下所示:
x
xx
xxx
但是,无论我对代码执行什么操作,都无法实现。我能得到的最好的是:
x
xx
xxx
所有这些都必须仅使用for循环和while循环,就像我在这里使用的那样。我正在使用的代码是
for a in range(1, 15):
for a2 in range(14-a, 0, 1):
print(" ", end='')
for a1 in range(1, a+ 1):
print("*", end='')
print()
-代表缩进。如何按照自己的方式进行这项工作?
编辑:结果,我只注意到了一半的问题。我在这里使用的代码构成了我需要的两个三角形,但是一个一个地堆叠在另一个下。我现在遇到的麻烦是使它们像M形一样并排显示。
for b in range(1, 10):
for b2 in range(9-b, 0, 1):
print(" ", end='')
for b1 in range(1, b+ 1):
print("*", end='')
print()
for a in range(1, 10):
for a2 in range(9-a, 0, -1):
print(" ", end='')
for a1 in range(1, a+ 1):
print("*", end='')
print()
我知道我缺少什么,我只是看不到它是什么。
这是仅使用for循环来解决这两个问题的方法。这种方法不是很pythonic,但这正是您所要求的。
x
xx
xxx
你真的很亲近 您写的1
不是-1
您想从14-a降到0的时间。
for a in range(1, 15):
for a2 in range(14-a, 0, -1):
print(" ", end='')
for a1 in range(1, a+ 1):
print("*", end='')
print()
说明(从此处开始):
范围(开始,停止[,步骤])
如果忽略step参数,则默认为1。如果step为正,则最后一个元素为start + i * step小于stop的最大值;如果step为负,则最后一个元素为start + i * step大于stop的最小值。
因此,在您的情况下,您原来的for循环什么也不做,因为14-a不小于0并且step为正。
x x
xx xx
xxxxxx
--
HEIGHT = 3
for b in range(1, HEIGHT+1):
for a in range(1, b + 1):
print("*", end='')
for a in range(0, 2*(HEIGHT-b)):
print(" ", end='')
for a in range(1, b + 1):
print("*", end='')
print()
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句