Python 模式,在 python 中使用 while 循环以三角形形式打印数字

Python pattern, printing numbers in triangle form with while loop in python

我需要使用 while 循环以特定方式打印数字,不允许使用 for 循环,但我不明白或无法在web 可以帮助我了解如何将图形向右移动一点或如何翻转它。这是我目前的代码。我想使用一个 delta,它是 8 个空格乘以后面的数字将形状向右移动并将顶部形状后面的所有内容转换为空白但不知道该怎么做

    i = 1
delta = 8
while i <= 5:
    j = 1
    while j <= i:
        print(j, end="")
        j += 1
    print()
    i += 1
a = 5
while a >= 1:
    b = 1
    while b <= a:
        print(b, end="")
        b += 1
    print()
    a -= 1

这是我得到的结果,我需要将第一个循环向右移动,这样我才能得到这个形状

在那之后,我需要反转下层循环并使用顶部循环中的数字 1 使其看起来适合下层循环,我可以使用 for 循环来完成,但我我不确定如何使用 while 循环来完成它并保持形状。

你绝对可以使用增量,只需在每个数字打印循环之前打印它以获得间距。对于第二个循环,您可以每次将它递减 2,这样结尾与第一个循环开始时保持在同一个位置。

i = 1
delta = 8
while i <= 5:
    j = 1
    print(delta*" ",end="")
    while j <= i:
        print(j, end=" ")
        j += 1
    print()
    i += 1
i = 2
while i <= 5:
    j = 1
    delta -= 2
    print(delta*" ",end="")
    while j <= i:
        print(j, end=" ")
        j += 1
    print()
    i += 1

编辑:这看起来很像来自 class 的问题,所以我试图让代码看起来像你的风格 lol