Python 嵌套循环数模式输出附加行?

Python Nested Loop number pattern outputting additional line?

我正在尝试创建一个专门使用 for 循环的数字网格。我的代码如下

def draw_grid (num):#x represents row y representes column
for x in range (num):
    print(x+1, end= ' ' )
    print()
    for y in range (num):
        print(y+1, end= ' ' )

例如,当我绘制一个 10 的网格时,我的输出结果是这样的。 1 1 2 3 4 5 6 7 8 9 10 2 1 2 3 4 5 6 7 8 9 10 3 1 2 3 4 5 6 7 8 9 10 4 1 2 3 4 5 6 7 8 9 10 5 1 2 3 4 5 6 7 8 9 10 6 1 2 3 4 5 6 7 8 9 10 7 1 2 3 4 5 6 7 8 9 10 8 1 2 3 4 5 6 7 8 9 10 9 1 2 3 4 5 6 7 8 9 10 10 1 2 3 4 5 6 7 8 9 10

我试过用几种不同的方式操作它,但我无法辨别是什么在顶部创建了 1 并在最右边的列创建了 2-10?我的 Y 值应该以不同的方式编码吗?

这是正在发生的事情

def draw_grid (num):#x represents row y representes column
    for x in range (num):
        print(x+1, end= ' ' )
        print()
        for y in range (num):
            print(y+1, end= ' ' ) 

在您的外循环中,您在每次迭代时打印 x + 1,没有换行,end = ' ',然后打印一个新行,print()。在您的第一次迭代中,它的打印 1 没有换行符,后跟来自 print() 的换行符,然后它进入您的内部循环并再次打印 1-10 ,最后没有换行符。现在,当您的外循环发生第二次迭代时,它会打印 2,这将在所有 y 值之后立即打印,然后是 print() 并重复该过程。

你最想要的就是这个

def draw_g(num):
    for x in range(num):
        for y in range(num):
            print(y + 1, end = ' ')
        print()

draw_g(10)

这里我们只使用外循环来确定行数,有时我们将在内循环中打印所有值。对于我们的第一次迭代,我们在 range(num) 中打印 y + 1 的所有值,一旦完成,我们使用 print() 前进到下一行,然后进行外循环的第二次迭代,这对 x in range(num) 重复 .结果是这样的。

1 2 3 4 5 6 7 8 9 10 
1 2 3 4 5 6 7 8 9 10 
1 2 3 4 5 6 7 8 9 10 
1 2 3 4 5 6 7 8 9 10 
1 2 3 4 5 6 7 8 9 10 
1 2 3 4 5 6 7 8 9 10 
1 2 3 4 5 6 7 8 9 10 
1 2 3 4 5 6 7 8 9 10 
1 2 3 4 5 6 7 8 9 10 
1 2 3 4 5 6 7 8 9 10