在 Python Zelle 图形 window 中打印一个不断变化的变量
Print a changing variable in Python Zelle graphics window
我在 Python 中使用 Zelle 图形创建了一个 window 并且想要打印在每次迭代后更改的变量值。这是我的代码:
from graphics import *
import random
from time import sleep
def myWindow(dim,Array,win):
for j in range (dim):
rec = Rectangle(Point(5+j, 10), Point(6 + j, 11))
rec.setFill("white")
rec.draw(win)
Array.append(rec)
label = "Dimension =", dim
text = Text(Point(10,8), label)
text.draw(win)
def main():
dim = 10
Array = []
win = GraphWin("Game of Life", 400, 400)
win. setCoords(0, 0, 20, 20)
myWindow(dim,Array,win)
for i in range (10):
sleep(1)
dim = dim - i - 1
Array[i].setFill("Black")
sleep(5)
main()
你可以看到数组的颜色在每次迭代后都会发生变化,并且数组的维度(我的代码中的变量dim
)减少了一个单位。现在我想在 window.
中打印正确的维度
我的代码不会更改图形中维度的值 window,但每次迭代后颜色都会发生变化。
为什么变量dim
的显示值没有变化?我如何实现这一目标?
您需要调用text.setText("...")
来更新标签的内容。我已在下面相应地修改了您的代码:
from time import sleep
from graphics import *
def myWindow(dim, array, win):
for j in range(dim):
rec = Rectangle(Point(5 + j, 10), Point(6 + j, 11))
rec.setFill("white")
rec.draw(win)
array.append(rec)
label = "Dimension = {}".format(dim)
text = Text(Point(10, 8), label)
text.draw(win)
return text
def main():
dim = 10
array = []
win = GraphWin("Game of Life", 400, 400)
win.setCoords(0, 0, 20, 20)
text = myWindow(dim, array, win)
for i in range(10):
sleep(1)
dim = dim - i - 1
array[i].setFill("Black")
text.setText("Dimension = {}".format(dim))
win.getMouse()
win.close()
main()
dim
变量在您的代码中的行为方式与您在文本中描述的方式不同,但无论如何 - 显示的是当前值,您可以根据需要进行调整。
我在 Python 中使用 Zelle 图形创建了一个 window 并且想要打印在每次迭代后更改的变量值。这是我的代码:
from graphics import *
import random
from time import sleep
def myWindow(dim,Array,win):
for j in range (dim):
rec = Rectangle(Point(5+j, 10), Point(6 + j, 11))
rec.setFill("white")
rec.draw(win)
Array.append(rec)
label = "Dimension =", dim
text = Text(Point(10,8), label)
text.draw(win)
def main():
dim = 10
Array = []
win = GraphWin("Game of Life", 400, 400)
win. setCoords(0, 0, 20, 20)
myWindow(dim,Array,win)
for i in range (10):
sleep(1)
dim = dim - i - 1
Array[i].setFill("Black")
sleep(5)
main()
你可以看到数组的颜色在每次迭代后都会发生变化,并且数组的维度(我的代码中的变量dim
)减少了一个单位。现在我想在 window.
我的代码不会更改图形中维度的值 window,但每次迭代后颜色都会发生变化。
为什么变量dim
的显示值没有变化?我如何实现这一目标?
您需要调用text.setText("...")
来更新标签的内容。我已在下面相应地修改了您的代码:
from time import sleep
from graphics import *
def myWindow(dim, array, win):
for j in range(dim):
rec = Rectangle(Point(5 + j, 10), Point(6 + j, 11))
rec.setFill("white")
rec.draw(win)
array.append(rec)
label = "Dimension = {}".format(dim)
text = Text(Point(10, 8), label)
text.draw(win)
return text
def main():
dim = 10
array = []
win = GraphWin("Game of Life", 400, 400)
win.setCoords(0, 0, 20, 20)
text = myWindow(dim, array, win)
for i in range(10):
sleep(1)
dim = dim - i - 1
array[i].setFill("Black")
text.setText("Dimension = {}".format(dim))
win.getMouse()
win.close()
main()
dim
变量在您的代码中的行为方式与您在文本中描述的方式不同,但无论如何 - 显示的是当前值,您可以根据需要进行调整。