2013-04-19 78 views
0

我想要做的是使用while循環來創建一個方形的asterixs,下面的代碼將打印填充的正方形,但是我想要它做的是打印未填充的方形使用while循環創建形狀Python

a='square' 
b='unfilled' 
c=4 
num=0 
asterix='*' 
while a=='square' and b=='unfilled' and int(num)<int(c): 
    num+=1 
    print(asterix*int(c)) 

什麼代碼所做的:

**** 
**** 
**** 
**** 

我想要的代碼做什麼:

**** 
* * 
* * 
**** 

任何幫助將不勝感激

回答

1
n = 4 
    s = "*" 
    for i in range(0,n,1): 
     if i == 0 or i == n-1: 
      print(s*n) 
     else: 
      print(s+(" "*(n-2))+s) 

這應該做你想做的。你不必把所有的東西都轉換成正確的。

+0

非常感謝您的幫助,完美的作品! – user2101517

1

我知道這是很久以前的答案,但我也經歷了一些我以前的課堂練習,並嘗試使用我在此過程中學到的一些新東西。

這讓我想起了很多練習題,而且最終我的回答類似於上面的答案。從那時起,我發現了一個很好的方式來寫這個使用發電機:

n = 4 
table = ("* *" if i not in [0, n] else '****' for i in range(n+1)) 
for row in table: print(row) 

你可能會想,這樣它的工作爲可變大小,n過於概括這一點。