1 回答

TA贡献1806条经验 获得超8个赞
在你的循环中,你不断增加1,直到达到 6,并且不断增加2 sindex的长度,这样它就会以 6*2-1 s 结束。那么,你尝试过扭转局面吗?chararrowarrows
size从*2-1的字符串开始arrow,设置index为size,每次迭代递减index,并继续直到达到 0,并每次删除两个字符char:
def down_arrow(arrow):
size = 6
index = size
char = arrow * (size * 2 - 1)
while index > 0:
spaces = " " * (6 - index)
print(spaces + char)
char = char[2:]
index -= 1
down_arrow('.')
请注意,我尝试坚持您最初编写的方式,有更多最佳方法可以实现此目的。
例如,虽然仍然只打印这种类型的箭头,但此函数可以同时执行以下操作:
def arrow(ch, size, up=True):
for i in range(1, size + 1) if up else range(size, 0, -1):
print(' ' * (size - i) + ch * (2 * i - 1))
arrow('.', 6)
arrow('.', 6, up=False)
添加回答
举报