1.使用循环打印等腰三角形
# 画三角形层数为n
# 第i层有空格:n-i
# 第i层有*:2*i-1
n = int(input("层数:"))#层数=n
for i in range(1, n + 1):#范围在1~n
# 画空格
for _ in range(1, n - i + 1): # _不用显示,用于表示;i表示第几层
print(" ",end="")#end=""相当于不换行输出
# 画*
for _ in range(1, 2 * i):
print("*",end="")
print()#print命令自带换行功能
2.使用循环打印菱形
# 菱形的上层数:n//2 +1
# 第i层有空格:up -i
# 第i层有*:2*up-1
n = int(input("输入菱形的层数(必须是奇数):"))
up = n // 2 + 1
for i in range(1,up+1):#范围1~up
# 画空格
for _ in range(1,up - i+1):
print(" ", end="")
# 画星星
for _ in range(1,2 * i):
print("*", end="")
print()
# 下半部分:n//2
# 空格数:i
# 星星数:n- i*2
down = n // 2
for i in range(1, down + 1):
# 画空格
for _ in range(1,i+1):
print(" ", end="")
# 画星星
for _ in range(1,n - i * 2+1):
print("*", end="")
print()
3.使用循环打印空心菱形
# 空心菱形意味着每行只画第一颗星星和最后一颗星星,其他位置补空格
# 所以可以得到上部分 j==0 或者 j==2*i-2 画星星
# 下部分 j ==0 或者 j==n-i*2-1画星星
n = int(input("输入菱形的层数(必须是奇数):"))
up = n // 2 + 1
down = n // 2
for i in range(1, up + 1):
#画空格
for _ in range(up - i):#范围0~up-i
print(" ", end="")
#画星星
for j in range(2 * i - 1):
#
if j == 0 or j == i * 2 - 2:#当j=0时(第一次循环),j=i*2-1-1(最后一次序循环)画星星
print("*",end="")
else:
print(" ",end="")#其他全部画成空格
print()
down = n // 2
for i in range(1, down + 1):
for _ in range(i):
print(" ", end="")
for j in range(n - i * 2):#范围0~n-i*2
if j == 0 or j == n - i * 2 - 1: # 当j=0时(第一次循环),j=i*2-1-1(最后一次序循环)画星星
print("*", end="")
else:
print(" ", end="") # 其他全部画成空格
print()
4.使用循环打印横空心菱形
n = int(input("输入菱形的层数(必须是奇数):"))
up = n // 2 + 1
down = n // 2
for i in range(1, up + 1):
#画空格
for _ in range(up - i):
print(" ", end="")
#画星星
for j in range(2 * i - 1):
#
if j == 0 or j == i * 2 - 2 or i == up:#当j=0时(第一次循环),j=i*2-1-1(最后一次序循环),当i=最后一行全部画星星
print("*",end="")
else:
print(" ",end="")
print()
down = n // 2
for i in range(1, down + 1):
for _ in range(i):
print(" ", end="")
for j in range(n - i * 2):
if j == 0 or j == n - i * 2 - 1:
print("*", end="")
else:
print(" ", end="")
print()
5.使用循环打印十字空心菱形
n = int(input("输入菱形的层数(必须是奇数):"))
up = n // 2 + 1
down = n // 2
for i in range(1, up + 1):
#画空格
for _ in range(up - i):
print(" ", end="")
#画星星
for j in range(2 * i - 1):
if j == 0 or j == 2 * i - 2 or i == up or j == (2 * i - 1) // 2:#前面的基础上加上每一行的中间画一个星星(2 * i - 1) // 2
print("*",end="")
else:
print(" ",end="")
print()
down = n // 2
for i in range(1, down + 1):
for _ in range(i):
print(" ", end="")
for j in range(n - i * 2):
if j == 0 or j == n - i * 2 - 1 or j == (n - i * 2) // 2:#前面的基础上加上每一行的中间画一个星星(n - i * 2) // 2
print("*", end="")
else:
print(" ", end="")
print()
6.使用循环打印十字箭头
n = int(input("输入的层数(必须是奇数):"))
up = n // 2 + 1
down = n // 2
for i in range(1, up + 1):
#画空格
for _ in range(up - i):
print(" ", end="")
#画星星
for j in range(2 * i - 1):
if j == 0 or j == 2 * i - 2 or i == up or j == (2 * i - 1) // 2:
print("*",end="")
else:
print(" ",end="")
print()
down = n // 2
for i in range(1, down + 1):
for _ in range(i):
print(" ", end="")
for j in range(n - i * 2):
if j == (n - i * 2) // 2:#将第一颗星星和最后一颗星星删除
print("*", end="")
else:
print(" ", end="")
print()
7.(显示一个金字塔)编写程序提示用户输入一个在1到15之间的整数,然后显示一个金字塔
#分成两个部分解决问题
#当三角形为n层时
#第i层有n-i个空格
#第i层的数字:从i开始,1结束。range(i,1)
#左边三角形
n = int(input("请输入三角形的层数:"))
for i in range(1, n + 1):
#画空格
for _ in range(n - i):
print("\t", end="")
#画数字
for j in range(i, 0, -1):
print(f"{j}\t", end="")
#右边三角形
for j in range(2, i + 1):
print(f"{j}\t", end="")
print()
8.(使用循环显示四种模式)使用嵌套循环在四个独立的程序中显示下面四种模式。
A
n = int(input("请输入三角形的层数:"))
for i in range(1, n + 1):
# 画空格
for _ in range(n - i):
print("", end="")
# 画数字
for j in range(1, i + 1):
print(f"{j}\t", end="")
print()
B
n = int(input("请输入打印的层数:"))
for i in range(n, 0, -1):
for j in range(1, i + 1):
print(f"{j}\t", end="")
print()
C
n = int(input("请输入三角形的层数:"))
for i in range(1, n + 1):
#画空格
for _ in range(n - i):
print("\t", end="")
#画数字
for j in range(i, 0, -1):
print(f"{j}\t", end="")
print()
D
n = int(input("请输入层数:"))
for i in range(n, 0, -1):
for _ in range(n - i):
print("\t", end="")
for j in range(1, i + 1):
print(f"{j}\t", end="")
print()