用“。”和“”仅在Python中绘制一个正方形

问题描述 投票:0回答:2

我试图只用空格和圆点制作一个正方形,但我遇到了问题。我需要以这种方式制作代码,因此我可以在每个参数的1个输入中更改正方形的大小。我遇到“侧面”变量的问题如何通过仅提供1个输入值来使左侧和右侧之间的空间自动化。

def square_shape(top,sides,bottom):
            top = ". "*top
            sides =((".")+("     .\n"))*sides
            bottom = ". "*bottom
            print top
            print sides,bottom
        square_shape(8,7,8)

P.S使用此代码可以很好地工作,但是当我更改顶部和底部的大小时,所需的空间不会在侧面创建。我希望我很清楚。

先感谢您

python size spaces
2个回答
1
投票

使空间取决于正方形的长度,不要在字符串中使用\n,否则你的最后一行也会打印换行符 -

def square_shape(leng): # no need to use 3 variables
        print (". "*leng)
        for _ in range(leng-2):
            print (". " + "  " * (leng - 2) + ".")
        print (". "*leng)
square_shape(8)

输出 -

. . . . . . . . 
.             .
.             .
.             .
.             .
.             .
.             .
. . . . . . . . 

0
投票

那这个呢?

def square_shape(size):
    print '. ' * size + '.'
    print ('.' + '  ' * (size-1) + ' .\n') * (size-1),
    print '. ' * size + '.'
© www.soinside.com 2019 - 2024. All rights reserved.