用“.”画一个正方形而“ ”仅在 Python

Drawing a square with "." and " " only in Python

我正在尝试用 space 和点制作一个正方形,但我遇到了问题。 我需要以这种方式编写代码,这样我就可以在每个参数的 1 个输入中更改正方形的大小。我对 "sides" 变量有疑问,如何通过仅提供 1 个输入值使左侧和右侧之间的 space 自动化。

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 使用此代码可以很好地工作,但是当我更改 top 和 bottom 的大小时,所需的 space 不会在两侧创建。 我希望我说清楚了。

提前致谢

使 space 依赖于正方形的长度并且不要在字符串中使用 \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)

输出 -

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

这个呢?

def square_shape(size):
    print '. ' * size + '.'
    print ('.' + '  ' * (size-1) + ' .\n') * (size-1),
    print '. ' * size + '.'

稍微优化了一下!

square_shape = int(input())
print ("."*square_shape)
for _ in range(square_shape-2):
    print ("."+ " "*(square_shape-2) + ".")
print ("."*square_shape)