猿问

Python打印菱形的代码,似懂非懂,没看出来具体是什么思路。

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

我只知道通过判断打印上部分和下部分,没搞明白空格那些是什么计算思路,求大神帮忙理一下思路。

风云ICT
浏览 3173回答 3
3回答

慕桂英4516509

其实我更熟悉Python 2

慕桂英4516509

第24,13行是换行

慕桂英4516509

菱形:◇i代表行数,每打一行加1,当i超过用户输入的行数(rows),停止程序   //while 部分如果还在打印上半部分,                                                                          //if 部分就打印空格数(第一行空格数是rows // 2,然后递减)(可以自己画画)//空格while 部分........................................下半部分空格:下半部分包括中间一行,所以行数为rows // 2 + 1;                               而i - (rows // 2 + 1),就是下半部分空格数的规律;重要是拿张草稿纸,自己画一画,找找规律
随时随地看视频慕课网APP
我要回答