You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用用户输入与for循环打印空心矩形:代码修复请求

修复空心矩形打印代码的问题

我来帮你搞定这个空心矩形的打印问题~先看看你现有代码里的几个关键问题:

  • 循环变量x的范围是range(1, num+1),x从1开始,但判断条件里写了x==0,这永远不会成立,导致第一行没法打印完整的星号
  • y的循环是range(num),y最大只能到num-1,但判断条件里写了y==num,这也永远触发不了,所以每行最后一个星号打不出来
  • 中间空白部分你只写了print(end=""),应该打印空格" ",不然中间没有间隔,样式就不对了

下面是修复后的代码:

num = int(input("Enter the size"))
for x in range(num):
    for y in range(num):
        # 判断是否是第一行、最后一行,或者第一列、最后一列
        if x == 0 or x == num - 1 or y == 0 or y == num - 1:
            print("*", end="")
        else:
            print(" ", end="")
    print()

代码说明:

  1. 把x的循环改成range(num),这样x的取值是0到num-1,对应矩形的每一行(从第0行到最后一行)
  2. 调整判断条件:x == 0对应第一行,x == num -1对应最后一行;y == 0对应第一列,y == num -1对应最后一列,这样就能正确打印边框星号
  3. else分支打印空格" ",保证中间的空心部分有间隔,完全符合你要的样式

测试效果:

  • 输入num=3时,输出:
***
* *
***
  • 输入num=4时,输出:
****
*  *
*  *
****

内容的提问来源于stack exchange,提问作者Trikstar Pandora

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 09:57:31