打印中间空心的矩形,使用用户输入和 for 循环



-我的第一个目标是打印:-

*** 
* * 
*** 

我尝试过的:

num = int(input("Enter the size"))
for x in range(1, num+1):
for y in range(num):
if (y==0 or y==num) or (x==0 or x==num):
print("*", end= "")
else:
print(end= "")
print()

当我输入 3 作为数字时的结果:

*
*
***

请修复我的代码,以便我可以为第一个目标获得正确的结果。

-我的第二个目标是,如果我在数字中输入4,代码也必须能够像这样打印:-

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

谢谢

您的原始代码几乎可以正常工作!在这里,它进行了一些小的修改,使其可以满足您的需求。

第一个问题是你似乎对x和y可以采取的范围感到困惑。如果你在 range(num( 上循环,那么循环中的计数器将在 0 和num - 1之间,循环将执行num次。所以 0 是第一次迭代,num - 1是最后一次迭代(所以,正方形的边(。

第二个问题是您需要打印一个空格字符,而不是在 else 子句中什么都不打印。

这是固定版本:

num = int(input("Enter the size"))
for x in range(num):
for y in range(num):
if (y==0 or y==num-1) or (x==0 or x==num-1):
print("*", end= "")
else:
print(" ", end= "")
print()

代码的更"pythonic"版本:

if __name__=='__main__':
num = int(input("Enter the size "))
print('*'*num)
for i in range(num-2):
print('*'+' '*(num-2)+'*')
print('*'*num)

相关内容

  • 没有找到相关文章

最新更新