0

我想做的是使用while循环从星号中创建一个正方形,下面的代码将打印填充的正方形,但我想要它做的是打印未填充的正方形

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))

代码的作用:

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

我想要代码做什么:

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

任何帮助将非常感激

4

2 回答 2

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)

这应该做你想做的事。您不必将所有内容都正确转换。

于 2013-04-19T03:08:22.430 回答
1

我知道这个问题很久以前就已经回答过了,但我也正在经历一些我之前的课堂练习,并尝试使用我在此过程中学到的一些新东西。

这让我想起了很多我的练习,我最终回答了类似于上面的答案。从那时起,我发现了一种使用生成器编写此代码的好方法:

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

您可能也想概括这一点,以便它适用于可变大小,n.

于 2013-06-08T04:59:18.917 回答