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-iprint(" ", 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*2if 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) // 2print("*",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) // 2print("*", 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()