首页 > 解决方案 > 0砖金字塔建筑python的错误输出

问题描述

我正在制作一个小脚本,它根据用户输入的数字构建一个金字塔,然后输出它可以达到的最大高度。

 for n in range(bricks):
     if (n*n)/2 <= bricks:
         height = n+1
     print("The height of the pyramid is:", height)

当我将“0”放入其中时,高度仍为“1”,这是因为 +1 但没有它会出现语法错误,并且在仅放入“1”砖时也会显示错误的高度, 有想法该怎么解决这个吗。

谢谢

标签: python

解决方案


您可以取消打印,它可能会在循环结束时运行

bricks= 0
height = 0
for n in range(bricks):
    if (n*n)/2 <= bricks:
        height = n+1
print("The height of the pyramid is:", height)

如果你提取一个方法,你将拥有

def get_height(bricks):
    height = 0
    for n in range(bricks):
        if (n * n) / 2 <= bricks:
            height = n + 1
    return height

for b in range(10):
    print("The height of the pyramid is:", get_height(b), 'for nb_bricks=', b)
The height of the pyramid is: 0 for nb_bricks= 0
The height of the pyramid is: 1 for nb_bricks= 1
The height of the pyramid is: 2 for nb_bricks= 2
The height of the pyramid is: 3 for nb_bricks= 3
The height of the pyramid is: 3 for nb_bricks= 4
The height of the pyramid is: 4 for nb_bricks= 5
The height of the pyramid is: 4 for nb_bricks= 6
The height of the pyramid is: 4 for nb_bricks= 7
The height of the pyramid is: 5 for nb_bricks= 8
The height of the pyramid is: 5 for nb_bricks= 9

推荐阅读