1.题目要求

编程输入金字塔的层数,打印出相应的金字塔层数,要求层数在1-15层之间

2.代码

layer = int(input("请输入您想打印的金子塔的层数(1-15):"))
for i in range(1,layer+1):
	print(" "*(15-i),end="")
	border_num = i
	while border_num >= 1:
		print(border_num,end="") 
#注意:end=""是为了不在后面空行断开,即为了方便后面打印的该数字
		border_num -= 1
	border_num += 2
 #由于此时的border_num已经为0,但是在一层数中 由大到小经过1时又继续递增到当前的层数
	while border_num <= i:
		print(border_num,end="")
		border_num += 1
	print() #换行用

3.结果

4.思路

(1)由于for循环中的range是前闭后开,即 :

例:[10,15 )

使得用 layer + 1作为for循环的末尾

(2)对于金字塔对数字的打印:

先递减打印,当打印到1 时,先结束递减(while循环),然后将已经为0的border_num +2就为2,在将border_num,进入递增循环,直到border_num 小于等于当前层数 i 时结束循环,最后打印print()来进行换行

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐