如何使用 python 'enter' 嵌套 for 循环中的每 n 个数字

How to 'enter' every n number in a nested for loop using python

我正在尝试用两个 for 循环(一个嵌套)编写一个 python 函数并接受 n 个数字并形成一个网格。到目前为止,我有这段代码,只需要在循环 运行 到 n 之后能够基本上 'enter' 。

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

因此,如果我更改 n to equal 5,那么它会每隔 5 个数字 'enter'。我试过在不同的位置使用 end=' ' 来让它工作,但它只是改变了单个数字的间隔方式,而不是每个 n 数字。

您需要在嵌套的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)

不确定是否需要使用嵌套循环,但如果不需要,您也可以使用一个循环。

def draw_grid(n):
    for i in range(n):
        print(' '.join([str(i) for i in range(1, n + 1)]))

draw_grid(3)

我时不时都喜欢单线...

但对于未来的您或其他开发人员来说,它的可读性要好得多:

def draw_grid(n):
    items = " ".join(str(i) for i in range(1, n+1)])
    for i in range(n):
        print(items)

你的外循环不需要 range(1, n+1) 无论它从什么数字开始它都将是相同的数量,它只是保持迭代数量的计数,你也不需要附加 1 默认步骤已经 1。除此之外,在外循环的下一次迭代开始之前,您只是缺少 print()

def draw_grid(n):
    for i in range(n):
        for j in range(1, n + 1):
            print(j, end=' ')
        print()

draw_grid(3)