Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > Python
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.02.2019, 09:34   #1
Gro-m
Пользователь
 
Регистрация: 07.02.2019
Сообщений: 15
По умолчанию Функция не работает

При нажатии кнопки не проиcходит действий с nn и значение в тексте постоянно равно 5. Сколько на кнопку не нажимай.

Код:
from tkinter import *

nn = 5

def form(t):
     if nn > 1:
        dd = nn - 1
        nn = dd
        text1.configure(text=nn)

root = Tk()
text1 = Label(root, font="Arial 15")
but = Button(root, text="Enter", width=15,height=1, bg="yellow", fg="blue")
but.bind("<Button-1>",form)
text1.pack()
but.pack()
root.title("")
root.geometry("400x400+450+200")
root.mainloop()

Последний раз редактировалось Gro-m; 15.02.2019 в 11:06.
Gro-m вне форума Ответить с цитированием
Старый 15.02.2019, 10:01   #2
Black Fregat
Программист
Участник клуба
 
Аватар для Black Fregat
 
Регистрация: 23.06.2009
Сообщений: 1,772
По умолчанию

Цитата:
Сообщение от Gro-m Посмотреть сообщение
не проиcходит действий с nn
Так их и нет в программе. Покажите строку, где должно изменяться nn
Black Fregat вне форума Ответить с цитированием
Старый 15.02.2019, 10:11   #3
Gro-m
Пользователь
 
Регистрация: 07.02.2019
Сообщений: 15
По умолчанию

Цитата:
Сообщение от Black Fregat Посмотреть сообщение
Так их и нет в программе. Покажите строку, где должно изменяться nn
вот же, вся функция про изменение nn. nn при каждом нажатии на кнопку должен уменьшаться на один
Код:
if nn > 1:
        dd = nn - 1
        dd = nn
Gro-m вне форума Ответить с цитированием
Старый 15.02.2019, 10:26   #4
Russian_watson
Пользователь
 
Регистрация: 15.02.2016
Сообщений: 39
По умолчанию

Цитата:
Сообщение от Gro-m Посмотреть сообщение
if nn > 1: dd = nn - 1 dd = nn
Объясните, как вы понимаете эти 3 строчки кода. Что в них происходит?
Russian_watson вне форума Ответить с цитированием
Старый 15.02.2019, 10:58   #5
Gro-m
Пользователь
 
Регистрация: 07.02.2019
Сообщений: 15
По умолчанию

Цитата:
Сообщение от Russian_watson Посмотреть сообщение
Объясните, как вы понимаете эти 3 строчки кода. Что в них происходит?
изначально nn = 5
далее есть условие если nn > 1 то выполняются действия определенные, а в данном случает nn = 5, то есть 5 > 1 условие проходит
далее переменная dd = nn -1 , nn = 5 значит dd = 5 - 1 то есть dd = 4
далее nn = dd, то есть переменная nn принимает значение dd, а dd = 4 то есть nn теперь равно 4
это происходит при нажатии на кнопку
далее при следующем нажатии на кнопку снова выполняется условие
далее выполняется действие dd = nn -1 , а nn уже равен 4, следовательно dd = 4 - 1, dd = 3
nn = dd, nn = 3
то есть при каждом нажатии на кнопку nn должен уменьшаться на 1

НАШЕЛ ОШИБКУ СВОЮ ДОЛЖНО БЫТЬ НЕ dd = nn, а nn = dd, но тогда вылазиет ошибка local variable 'nn' referenced before assignment

Последний раз редактировалось Gro-m; 15.02.2019 в 11:07.
Gro-m вне форума Ответить с цитированием
Старый 15.02.2019, 11:07   #6
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Цитата:
Сообщение от Gro-m Посмотреть сообщение
далее dd = nn, то есть переменная nn принимает значение dd, а dd = 4 то есть nn теперь равно 4
с какого перепугу? Почему выше dd = 4 - это dd принимает значение, а dd = nn вдруг nn стало принимать?
p51x на форуме Ответить с цитированием
Старый 15.02.2019, 11:09   #7
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Код:
dd = nn - 1
nn = dd
можно записать как
Код:
nn--
или
Код:
nn -=1
?
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 15.02.2019, 11:29   #8
Gro-m
Пользователь
 
Регистрация: 07.02.2019
Сообщений: 15
По умолчанию

Цитата:
Сообщение от Aleksandr H. Посмотреть сообщение
Код:
dd = nn - 1
nn = dd
можно записать как
Код:
nn--
или
Код:
nn -=1
?
я так и начинал писать nn -= 1, в итоге всеравно ошибка local variable 'nn' referenced before assignment
Gro-m вне форума Ответить с цитированием
Старый 15.02.2019, 11:30   #9
Gro-m
Пользователь
 
Регистрация: 07.02.2019
Сообщений: 15
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
с какого перепугу? Почему выше dd = 4 - это dd принимает значение, а dd = nn вдруг nn стало принимать?
там ошибка была исправил. теперь проблема в этом local variable 'nn' referenced before assignment
Gro-m вне форума Ответить с цитированием
Старый 15.02.2019, 11:33   #10
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

https://www.programiz.com/python-pro...global-keyword
p51x на форуме Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Функция не работает spoon100500 JavaScript, Ajax 14 21.10.2016 10:36
Sendmail работает, функция mail() работает, но есть проблема. PavelNAndreev PHP 8 27.01.2014 12:45
Не работает функция artem611 Паскаль, Turbo Pascal, PascalABC.NET 3 11.04.2011 10:10
не работает функция Benderbej JavaScript, Ajax 2 30.08.2010 18:54