Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Только начал изучать функции, а тут вылезает эта ошибка.

Руслан Барновский Ученик (103), на голосовании 2 месяца назад
 ##  tkinter
from tkinter import *
def foot():
count += 1
count = 0

root = Tk()


root.title("Foot cliker")
root.geometry("300x400")
root.resizable(width=False, height=False)
button = Button(root,text = "foot" ,font=40, command= foot)
button.pack(side=BOTTOM, pady=30)
count_label = Label(root,text=f"вонь ваших пяток: \n{count}" ,font=50)
count_label.pack(side=TOP ,pady= 20)
root.mainloop()
cannot access local variable 'count' where it is not associated with a value. Можете обьяснить что я сделал не так?
Голосование за лучший ответ
Я не Михаил Гуру (3842) 3 месяца назад
Ошибка возникает, потому что в функции `foot` вы пытаетесь использовать переменную `count`, не объявив её как глобальную. Нужно указать, что `count` является глобальной переменной. Исправленный код будет выглядеть так:

```python
from tkinter import *

def foot():
global count
count += 1
count_label.config(text=f"вонь ваших пяток: \n{count}")

count = 0

root = Tk()
root.title("Foot cliker")
root.geometry("300x400")
root.resizable(width=False, height=False)

button = Button(root, text="foot", font=40, command=foot)
button.pack(side=BOTTOM, pady=30)

count_label = Label(root, text=f"вонь ваших пяток: \n{count}", font=50)
count_label.pack(side=TOP, pady=20)

root.mainloop()
```

Здесь добавлено `global count` внутри функции `foot`, чтобы функция могла изменять глобальную переменную `count`. Также обновляется текст метки `count_label` после каждого нажатия кнопки.
Руслан БарновскийУченик (103) 3 месяца назад
Благодарю!
スネーク フリーフライト Ученик (223) 3 месяца назад
Переменная не обявлена как глобальная
Похожие вопросы