首页 > 解决方案 > 如何在每行中打印一个字符串,从行的第一行开始有一些空格?

问题描述

我没有写清楚的主题,因为我不知道该写什么,首先抱歉。

我想要达到的是:

a
    a
        a
            a
                a
            a
        a
    a
a

有了for循环,我想我可以做到这一点,但我尝试的是完全错误的。

标签: pythonpython-3.xfor-loop

解决方案


您可以递归地执行此操作:

def print_angle(s, start, end, direction):
    indent = "  "*start
    print(f"{indent}{s}")

    if start < end-1 and direction:
        print_angle(s, start+1, end, 1)
    elif start > 0:
        print_angle(s, start-1, end, 0)

print_angle('a', 0, 5, 1)

这打印:

a
   a
      a
        a
           a
        a
      a
   a
a

这里的想法是:

1.传递所需的字符以打印 -在本例中为a 。

2.通过起点 - 在这种情况下为 0 个缩进。

3.通过终点 - 总共 5 走。

4.传球方向 - 1 向上,0 向下。

5.递归向上直到到达终点,保持方向,最初向上。

6.递归向下直到到达 0 并退出。


推荐阅读