目录
题目要求
请编写一个程序,可以接收一个整数,表示层数(total_level),打印出空心金字塔。
* * * * * * * *********
核心思想
化繁为简,先死后活!
思路分析
先死后活
1.先不考虑层数的变化,假定就是5层,后面做活。
化繁为简
1.打印矩形
2.打印直角三角形
3.打印金字塔
4.打印空心金字塔
for循环实现
1.打印矩形
图案形状
***** ***** ***** ***** *****
代码实现
print("打印矩形:")
# i控制层数
for i in range(1, 6):
# j控制每层输出的*的个数
for j in range(1, 6):
# 这里end=""表示输出不换行
print("*", end="")
# 每层输出后换行
print("")
运行截图
2.打印直角三角形
图案形状
* 1层:1个* ** 2层:2个* *** 3层:3个* **** 4层:4个* ***** 5层:5个*
代码实现
print("打印直角三角形:")
# i控制层数
for i in range(1, 6):
# j控制每层输出的*的个数
# for j in range(1, i+1):
for j in range(i):
# 这里end=""表示输出不换行
print("*", end="")
# 每层输出后换行
print("")
运行截图
3.打印金字塔
图案形状
* 1层:1个* 2*1-1 空格4 = 5-1 *** 2层:3个* 2*2-1 空格3 = 5-2 ***** 3层:5个* 2*3-1 空格2 = 5-3 ******* 4层:7个* 2*4-1 空格1 = 5-4 ********* 5层:9个* 2*5-1 空格0 = 5-5
代码实现
print("打印金字塔:")
for i in range(1, 6):
# K:控制输出的空格数
for k in range(5 - i):
print(" ", end="")
# j控制每层输出的*的个数
for j in range(2 * i - 1):
# 这里end=""表示输出不换行
print("*", end="")
# 每层输出后换行
print("")
运行截图
4.打印空心金字塔
图案形状
* 分析:每层的两边输出* ,最后一层输出* * * * * * * *********
代码实现
print("打印空心金字塔:")
for i in range(1, 6):
# K:控制输出的空格数
for k in range(5 - i):
print(" ", end="")
# j控制每层输出的*的个数
for j in range(2 * i - 1):
# 这里end=""表示输出不换行
if j == 0 or j == 2 * (i - 1) or i == 5:
print("*", end="")
else:
print(" ", end="")
# 每层输出后换行
print("")
运行截图
5.做“活”
代码优化
total_level = int(input("请输入金字塔总层数:"))
print(f"打印{total_level}层空心金字塔:")
for i in range(1, total_level + 1):
# K:控制输出的空格数
for k in range(total_level - i):
print(" ", end="")
# j控制每层输出的*的个数
for j in range(2 * i - 1):
# 这里end=""表示输出不换行
if j == 0 or j == 2 * (i - 1) or i == total_level:
print("*", end="")
else:
print(" ", end="")
# 每层输出后换行
print("")