@Oleg324

Добрый день. Как сохранить значение переменной из функции в tkinter?

Почему-то значения которые должны сохра
няться после нажатия кнопки "введите значение двух чисел" не могут быть использованы во второй кнопке, где эти числа надо поделить то есть первое на второе. Выдаёт такую ошибку

NameError: name 'a' is not defined
код
a=0
b=0
def func1(f):
    a=int(input())
    b=int(input())
def func2(ff):
    print(a/b)
  • Вопрос задан
  • 305 просмотров
Пригласить эксперта
Ответы на вопрос 1
ifullut
@ifullut
Учу программирование понарошку...
Начну с того что в многих языках программирования есть такое понятие как локальные и глобальные переменные. Все переменные которые находятся в циклах, функциях, классах являются ЛОКАЛЬНЫМИ и использовать их значение нельзя в других функциях. А все то что ЗА функциями, циклами, классами это ГЛОБАЛЬНЫЕ они имеют изначальное значение и их можно использовать где угодно.
В вашем коде:
a = 0
b = 0
def func1(f):
    a = int(input())
    b = int(input())
def func2(ff):
     print(a/b)

Во первых если вы не используете аргументы f и ff их можно просто удалить. Во вторых, тут вы пишите a = 0, b = 0 это глобальные переменные! И вы во второй функции не определяете input(), а просто 0/0 это ошибка поэтому стоит исправить. (Снизу напишу готовый код). И в третьих может быть вы просто забыли вызвать нужную функцию например func1(). Именно поэтому появляется эта ошибка.
Вот готовый код:
#лучше будет сразу написать input()
a = int(input())
b = int(input())
def func1(): #первая функция с тем что я написал бесполезна поэтому сразу делим
    print(a/b)

func1()
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы