for循环绘制到画布上不起作用。将字符串绘制到第一个位置,而不是下一个

时间:2019-06-21 09:12:23

标签: python reportlab

我正在处理动态时间表。我的第一个问题是我想确保可以在reportlab中的不同变量处打印字符串,但是我的循环无法正常工作。它在第一个位置打印字符串,但在随后的位置不打印。

我尝试打印高度的变量,然后逐步增加它,这样可以正常工作,并且包含x坐标的变量也很好。所以我知道循环正在循环。

function getMax(r, g, b, colour) {
  let max = -Infinity,
      colcheck = false,
      map = { r, g, b }

  for (const [k, value] of Object.entries(map)) {
    if(value === max)
      colcheck = false;
    else if (value > max) {
      max = value; // update max value
      colcheck = colour === k;
    }
  }
  
  console.log(max, colcheck)
}

getMax(3, 2, 1, 'r') // unique max and same as colour
getMax(3, 3, 1, 'r') // max same as colour but not unique
getMax(3, 2, 1, 'g') // unique max but not same as colour

实际结果是,它在坐标42,600处打印了一个“测试字符串”

我希望这列有10个版本的列

1 个答案:

答案 0 :(得分:0)

在打印ROW_VAR之前,您已将TEST_STRING设置为600。您运行的每个循环都会将ROW_VAR重置为600。

您应该在for循环外定义一次ROW_VAR,以便可以在循环中对其进行更新。

类似的事情应该起作用

ROW_VAR = 600

for i in range (1,11):
    c.drawString(COLUMN1,ROW_VAR,"TEST STRING")
    ROW_VAR = ROW_VAR + i * 20
    i +1
    print(i)
    print (ROW_VAR)