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

2024-10-02 08:29:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试创建一个专门用于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值应该用不同的编码吗


Tags: 代码in网格fordefrange数字num
1条回答
网友
1楼 · 发布于 2024-10-02 08:29:49

这就是正在发生的事情

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 

相关问题 更多 >

    热门问题