我想要做的是使用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))
代码的作用:
****
****
****
****
我想要代码做什么:
****
* *
* *
****
非常感谢任何帮助
答案 0 :(得分: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)
这应该做你想做的事。您不必将所有内容都转换正确。
答案 1 :(得分:1)
我知道很久以前就已经回答了这个问题,但我也正在进行一些早期的课堂练习,并尝试使用我在学习过程中学到的一些新东西。
这让我想起了很多练习,最后我回答了类似于上面的答案。从那时起,我发现了一种使用生成器编写它的好方法:
n = 4
table = ("* *" if i not in [0, n] else '****' for i in range(n+1))
for row in table: print(row)
您可能也希望对此进行概括,以使其适用于可变大小n
。