如何使用为list append编写循环

2024-05-08 04:25:20 发布

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

from Tkinter import *
import csv
root = Tk()
def click(event):
    global x,y
    x, y= event.x,event.y
frame = Frame(root, width=100, height=100)
frame.bind("<Button-1>", click)
frame.pack()
root.mainloop()

row=[]
col=[]

row.append(x)
col.append(y)

求你了!如何编写循环,以便两个列表可以包含我单击的所有x和y。你知道吗


Tags: csvfromimporteventtkinterdefcolroot
2条回答

实际上,您只需要附加一次x和y。你可以使追加发生在点击事件-无需循环!你知道吗

from tkinter import *
import csv
root = Tk()
coords = []

def click(event):
    global x,y
    x, y= event.x,event.y
    coords.append([x, y])
    print("Clicked at: ", x, y)


frame = Frame(root, width=100, height=100)
frame.bind("<Button-1>", click)
frame.pack()
root.mainloop()

没有理由在这里使用显式循环,root.mainloop已经提供了显式循环,它在每次单击事件时为您调用处理程序。写作:

from Tkinter import *

root = Tk()

row = []
col = []

def click(event):
    row.append(event.x)
    col.append(event.y)

frame = Frame(root, width=100, height=100)
frame.bind("<Button-1>", click)
frame.pack()
root.mainloop()

一旦root.mainloop完成,rowcol将使用每次单击的所有x和y坐标填充。也没有理由将xy设为全局的:它们的全局值总是保存上次调用click时的值(或者如果您根本没有单击过,则会给您一个未定义的变量错误)。你知道吗

相关问题 更多 >