Python For循环应该打印4行。它只印了一张

Python For循环应该打印4行。它只印了一张,python,python-2.7,for-loop,Python,Python 2.7,For Loop,我有一个名为deck的列表,它有104个元素。我想创建一个for循环,在一个简单的GUI中在画布上显示图像(只能在CodeSkulptor上运行,指向我的程序的链接如下: ) 循环只打印第一行,我想我更新图像中心坐标的方式是我的代码出了问题 if center_d[0] >= WIDTH: center_s[1] += height center_d[1] += height 整个循环如下,如果您需要更多上下文,请访问我上面提供的指向我的程序的链接

我有一个名为deck的列表,它有104个元素。我想创建一个for循环,在一个简单的GUI中在画布上显示图像(只能在CodeSkulptor上运行,指向我的程序的链接如下: )

循环只打印第一行,我想我更新图像中心坐标的方式是我的代码出了问题

    if center_d[0] >= WIDTH:
        center_s[1] += height
        center_d[1] += height
整个循环如下,如果您需要更多上下文,请访问我上面提供的指向我的程序的链接。谢谢

def draw(canvas):
    global deck, cards, WIDTH, HEIGHT
    width = 70
    height = 106
    center_s = [41, 59]
    center_d = [41, 59]
    for card in deck:
        canvas.draw_image(deck_img, center_s, (width, height), center_d, (width, height))
        center_s[0] += 70
        center_d[0] += 70
        if center_d[0] >= WIDTH:
            center_s[1] += height
            center_d[1] += height

您忘记了您的
中心[0]
中心[0]
坐标。他们在不断成长。 您需要将它们设置为零,例如:

if center_d[0] >= WIDTH:
    center_s[0] = 41
    center_d[0] = 41
    center_s[1] += height
    center_d[1] += height

您忘记了您的
中心[0]
中心[0]
坐标。他们在不断成长。 您需要将它们设置为零,例如:

if center_d[0] >= WIDTH:
    center_s[0] = 41
    center_d[0] = 41
    center_s[1] += height
    center_d[1] += height

底部的
center_s[1]+=height
重复两次。。我想你真的不想要这个谢谢,我已经修好了,结果还是一样…
center\u s[1]+=height
底部重复了两次。。我想你真的不想那样谢谢,我已经修好了,结果还是一样。。。