rows = int(input("请输入行数(奇数):"))
i = 1
while i<=rows:
if i<=rows/2+1:
j = rows // 2
x = 1
while j>=i:
print(" ",end="")
j-=1
while x<= 2*(i-1)+1:
print("*",end="")
x+=1
print("")
else:
z = 1
y = (rows-i+1)*2-1
while z <= i-(rows//2+1):
print(" ",end="")
z+=1
while y > 0:
print("*",end="")
y-=1
print()
i+=1我只知道通过判断打印上部分和下部分,没搞明白空格那些是什么计算思路,求大神帮忙理一下思路。
3 回答
慕桂英4516509
TA贡献12条经验 获得超14个赞
菱形:◇
i代表行数,每打一行加1,当i超过用户输入的行数(rows),停止程序 //while 部分
如果还在打印上半部分, //if 部分
就打印空格数(第一行空格数是rows // 2,然后递减)(可以自己画画)//空格while 部分
........................................
下半部分空格:下半部分包括中间一行,所以行数为rows // 2 + 1;
而i - (rows // 2 + 1),就是下半部分空格数的规律;
重要是拿张草稿纸,自己画一画,找找规律
添加回答
举报
0/150
提交
取消