用“.”画一个正方形而“ ”仅在 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)
我正在尝试用 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)