数字半金字塔Python

2024-10-01 07:35:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我想用python打印一个左边有星的半金字塔。 到目前为止,这是我的代码

for i in range(1,12):
    for j in range(12 - i):
        print(" ", end = " ")
    for j in range(1, i):
        print(j, end = " " )
    print("\n")

我的输出是

^{pr2}$

但是,我的输出是按相反的顺序进行的:

            1

          2 1

        3 2 1

      4 3 2 1

    5 4 3 2 1

我怎样才能改变?在


Tags: 代码infor顺序rangeendprintpr2
3条回答

通过添加第三个参数(-1)来反转范围。另外,将数字格式化为使用2位,因此10不会将最后一行向右推。最后,最后一个print可能不应该有\n,因为这已经是print的默认结束字符:

for i in range(1,12):
    for j in range(12 - i):
        print("  ", end = "")
    for j in range(i-1, 0,-1):
        print(str(j).rjust(2), end = "" )
    print()

只需反转第二个循环——打印实际数字的循环:

for j in range(i-1, 0, -1):

最后一个参数控制“步长”,即变量在每次循环迭代中的变化量。输出:

^{pr2}$

你可以把你打印出来的数字范围颠倒过来

for i in range(1,12):
    for j in range(12 - i):
        print(" ", end = " ")
    for j in reversed(range(1, i)):
        print(j, end = " " )
    print("\n")

相关问题 更多 >