day18
打印菱形
打印如下菱形
*
***
*****
*******
*****
***
*
分析
1.分成2部分处理
*
***
*****
*******
--拆分---
*****
***
*
2.上半部分为正立三角形
*
***
*****
*******
以n=7为例,7//2=3,中位数3+1
序号 空格 星星数
i=0 4-i-1=3 2n+1=1
i=1 4-i-1=2 2n+1=3
i=2 4-i-1=1 2n+1=5
i=3 4-i-1=0 2n+1=7
3.下半部分为倒立三角形
*****
***
*
以n=7为例,7//2=3,中位数3+1=4
序号 空格 星星数
i=4 i-4+1=1 2*(n-i)-1=5
i=5 i-4+1=2 2*(n-i)-1=3
i=6 i-4+1=3 2*(n-i)-1=1
编码实现
1.编码实现(循环)
n=eval(input("请输入一个奇数:"))
while 1:
if n%2==1:
break
n = eval(input("请输入一个奇数:"))
midnum=n//2+1
for i in range(n):
if i< midnum:
print("{}{}".format(' '*(midnum-i-1),'*'*(2*i+1)))
else:
print("{}{}".format(' '*(i-midnum+1),'*'*(2*(n-i)-1)))
运行结果
请输入一个奇数:9
*
***
*****
*******
*********
*******
*****
***
*