В python переменные внутри функций являются локальными, что означает, что если вы определяете переменную a = 0
вне функции, а затем делаете a = 1
в функции, a
равно 1 внутри функции, но все равно равно 0 снаружи. Если вы хотите изменить значение a
вне функции изнутри функции, вам нужно объявить a
как глобальную переменную (см. Код ниже).
import tkinter as tk # avoid import * to because it leads to naming conflicts
win = tk.Tk()
win.title('ab')
i = 0
letters = "abcdefghijklmnopqrstuvwxyz"
def changetext():
global i # change value of i outside function as well
i += 1
i %= 26 # cycle through the alphabet
lbl.configure(text=letters[i])
lbl = tk.Label(win, text='a')
lbl.grid(row=1, column=1)
btn = tk.Button(win,text='u', command=changetext)
btn.grid(row=2, column=1)
win.mainloop()