*星号菱形其实就是星号三角形分上下两部分输出
思路:输出三角形,观察每一行都是奇数1,3,5,7,9,7,5,3,1
假设输出的菱形行数为11行,首先凑1,3,5,7,9奇数,利用取整运算符// 【向下取整】相当于int 函数,#将菱形分成上下两个三角形来处理,11/2取整后等于5,即输出的是上面5行下面4行一共9行,加1后上面6行下面5行即11行。故分上下时将其用n//2+1来处理
n=11
for i in range(n//2+1)
#将菱形分成上下两个三角形来处理,11/2取整后等于5,即输出的是上面5行下面4行一共9行,加1后上面6行下面5行即11行
对于每行*号的个数,对应的上6行分别为,1,3,5,7,9,11,若令行数为i,则上半部分行数对应的*个数j为(2i+1),对于其空格数,5,4,3,2,1,0,从第一行到(11//2+1)
n=11
#上半部分三角形
for i in range(n//2+1) :
#输出空格,上面有几行最多输出几个空格
#对于上一半:空格数目,上半部分的行数—所在的行数
for j in range(n//2-i):
print(" ",end=" ")
for j in range(2*i+1):
print("*",end=" ")
print()
#下半部分三角形: 下半部分只需要5行就行
#所在行数 7,8,9,10,11
倒序行数 4,3,2,1,0
#“ ”数 1,2,3,4,5
#*数 9,7,5,3,1
for i in range(n//2): #下半部分对应4,3,2,1
for j in range (i+1):
print(" ",end=" ")
#输出空格
for j in range ((n//2-i)*2-1)
print("*",end=" ")
print()
n=7
for i in range (n//2+1):
for j in range (n//2-i):
print(" ",end=" ")
for j in range(2*i+1):
print("*",end=" ")
print()
for i in range (n//2):
for j in range (i+1):
print (" ",end=" ")
for j in range((n//2-i)*2-1):
print ("*",end=" ")
print()