風(fēng)云ICT
2017-08-10 23:14:35
rows?=?int(input("請輸入行數(shù)(奇數(shù)):"))
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條經(jīng)驗 獲得超14個贊
菱形:◇
i代表行數(shù),每打一行加1,當(dāng)i超過用戶輸入的行數(shù)(rows),停止程序 ? //while 部分
如果還在打印上半部分, ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//if 部分
就打印空格數(shù)(第一行空格數(shù)是rows // 2,然后遞減)(可以自己畫畫)//空格while 部分
........................................
下半部分空格:下半部分包括中間一行,所以行數(shù)為rows // 2 + 1;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?而i - (rows // 2 + 1),就是下半部分空格數(shù)的規(guī)律;
重要是拿張草稿紙,自己畫一畫,找找規(guī)律
添加回答
舉報
0/150
提交
取消