2013-04-19 80 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过于概括这一点。