2017-03-10 17 views
0

我想使用空格和點只有一個正方形,但我有問題。 我需要以這種方式製作代碼,所以我可以在每個參數的1個輸入中更改方形的大小。我遇到了與「雙方」變量有關的問題,通過只給出1個輸入值,我怎樣才能讓左側和右側之間的空間自動化。用「。」來畫一個正方形。和「」只在Python

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有了這個代碼,它工作完全正常,但是當我改變頂部和底部的大小,所需要的空間,在雙方沒有建立。 我希望我很清楚。

預先感謝您

回答

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

這是完美的,但我還沒有學習(.join)方法,我下週有一箇中期,所以我不知道如果我使用它會是一個問題。非常感謝您的時間! – Unix

+0

@Unix你可以使用正常循環。檢查編輯。 – hashcode55

+0

感謝兄弟,我現在明白了 – Unix

0

這是怎麼回事?

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

非常感謝! – Unix

+0

@Bendik這不會打印出一個完美的正方形,在最後一行之前會有一個換行符。 – hashcode55

+0

現在,它是一個完美的廣場,面積*尺寸,剛剛確定了行數。 – Bendik

相關問題