我试图用两个for循环(一个嵌套)编写一个python函数,并接受n个数字并形成一个网格。到目前为止,我已经有了这段代码,只需要能够在循环运行到n个数后实质上“输入”即可。
Sensor2
打印:
def draw_grid(n):
for i in range(1,n+1,+1):
for j in range(1,n+1,+1):#(1,n+1,+1) starts at 1, ends at n + 1, adds in increments of 1
print(j, end=' ')
draw_grid(3)
目标:
1 2 3 1 2 3 1 2 3
因此,如果我更改了1 2 3
1 2 3
1 2 3
,它将每5个数字“输入”一次。我尝试过在不同位置使用n to equal 5
来使它起作用,但这只是改变了单个数字而不是每个end=' '
数字的间隔方式。
答案 0 :(得分:1)
您需要在嵌套的for循环之后添加print()
语句。
def draw_grid(n):
for i in range(1,n+1,+1):
for j in range(1,n+1,+1):#(1,n+1,+1) starts at 1, ends at n + 1, adds in increments of 1
print(j, end=' ')
print()
draw_grid(3)
答案 1 :(得分:1)
我不时要一线...
但是对于以后的您或其他开发人员来说,它更具可读性:
def draw_grid(n):
items = " ".join(str(i) for i in range(1, n+1)])
for i in range(n):
print(items)
答案 2 :(得分:0)
不确定是否需要使用嵌套循环,如果不需要,也可以使用一个循环。
def draw_grid(n):
for i in range(n):
print(' '.join([str(i) for i in range(1, n + 1)]))
draw_grid(3)
答案 3 :(得分:0)
您不需要range(1, n+1)
来使外循环保持相同的数量,而不管它开始于哪个数字,它只需计算迭代数量,也不需要额外的{ {1}}的默认步骤已经是1
。除此之外,您还没有在外部循环的下一次迭代开始之前丢失1
。
print()