-我的第一个目标是打印:-
***
* *
***
我尝试过的:
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)