使用用户输入与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()
代码说明:
- 把
x的循环改成range(num),这样x的取值是0到num-1,对应矩形的每一行(从第0行到最后一行) - 调整判断条件:
x == 0对应第一行,x == num -1对应最后一行;y == 0对应第一列,y == num -1对应最后一列,这样就能正确打印边框星号 - else分支打印空格
" ",保证中间的空心部分有间隔,完全符合你要的样式
测试效果:
- 输入num=3时,输出:
*** * * ***
- 输入num=4时,输出:
**** * * * * ****
内容的提问来源于stack exchange,提问作者Trikstar Pandora
相关产品推荐
相关产品推荐

