如何使用Python在嵌套的for循环中“输入”每n个数字

时间:2018-10-16 06:42:20

标签: python for-loop nested-loops

我试图用两个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=' '数字的间隔方式。

4 个答案:

答案 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()