• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

  • Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Взаимодействие с переменной используя функцию python

Monotik

One Level
03.09.2020
24
0
BIT
0
Добрый вечер, пытаюсь взаимодействовать со списком используя фунцию, но выводит ошибку.

Python:
from tkinter import *

root=Tk()
root.title("Bets")
root.resizable(width=False, height=False)
root.geometry("200x40")
root.configure(bg='#bababa')

listt=[]
a=0

def bet():
    a+=1
    listt.append(int(a))
    print(listt)



btn1= Button(root,text=' ', bg='#a34040', fg='#fff', command=bet)
btn1.place(x=10,y=10,width=180, height=20)
root.mainloop()

Я хочу чтобы при нажатии кнопки список пополнялся на a. Я искал ответ, но везде как то странно объясняют и решают чуть другие задачи
 
Решение
На выходе конкретно что нужно получить? А то объяснения какие-то противоречивые, сбрасывается, увеличивается.... Если увеличивающийся список, то можно просто объявить глобальную переменную.


Python:
from tkinter import *

root = Tk()
root.title("Bets")
root.resizable(width=False, height=False)
root.geometry("200x40")
root.configure(bg='#bababa')

listt = []
a = 0

def bet():
    global a
    a += 1
    listt.append(a)
    print(listt)


btn1 = Button(root ,text=' ', bg='#a34040', fg='#fff', command=bet)
btn1.place(x=10, y=10, width=180, height=20)
root.mainloop()

explorer

Platinum
05.08.2018
1 080
2 474
BIT
0
Вам нужно проштудировать раздел "глобальные и локальные переменные", без этого делать в python нечего. Ошибка самая элементарная - переменная находится вне видимости функции. Её всего лишь нужно переместить в саму функцию. И приведение к типу int здесь лишнее, так как переменная и так цифра.

Python:
from tkinter import *

root = Tk()
root.title("Bets")
root.resizable(width=False, height=False)
root.geometry("200x40")
root.configure(bg='#bababa')

listt = []


def bet():
    a = 0
    a += 1
    listt.append(int(a))
    print(listt)


btn1 = Button(root ,text=' ', bg='#a34040', fg='#fff', command=bet)
btn1.place(x=10, y=10, width=180, height=20)
root.mainloop()
 

Monotik

One Level
03.09.2020
24
0
BIT
0
Вам нужно проштудировать раздел "глобальные и локальные переменные", без этого делать в python нечего. Ошибка самая элементарная - переменная находится вне видимости функции. Её всего лишь нужно переместить в саму функцию. И приведение к типу int здесь лишнее, так как переменная и так цифра.

Python:
from tkinter import *

root = Tk()
root.title("Bets")
root.resizable(width=False, height=False)
root.geometry("200x40")
root.configure(bg='#bababa')

listt = []


def bet():
    a = 0
    a += 1
    listt.append(int(a))
    print(listt)


btn1 = Button(root ,text=' ', bg='#a34040', fg='#fff', command=bet)
btn1.place(x=10, y=10, width=180, height=20)
root.mainloop()
Просто если я добавлю переменную в функцию, при повторном выполнении значение переменной сбрасывается. a увеличивается с 0 на 1, добавляется в список и снова сбрасывается до 0.
Возможно ли сохранить значение a при повторном использовании функции bet ?
 

explorer

Platinum
05.08.2018
1 080
2 474
BIT
0
На выходе конкретно что нужно получить? А то объяснения какие-то противоречивые, сбрасывается, увеличивается.... Если увеличивающийся список, то можно просто объявить глобальную переменную.


Python:
from tkinter import *

root = Tk()
root.title("Bets")
root.resizable(width=False, height=False)
root.geometry("200x40")
root.configure(bg='#bababa')

listt = []
a = 0

def bet():
    global a
    a += 1
    listt.append(a)
    print(listt)


btn1 = Button(root ,text=' ', bg='#a34040', fg='#fff', command=bet)
btn1.place(x=10, y=10, width=180, height=20)
root.mainloop()
 
Решение

Monotik

One Level
03.09.2020
24
0
BIT
0
На выходе конкретно что нужно получить? А то объяснения какие-то противоречивые, сбрасывается, увеличивается.... Если увеличивающийся список, то можно просто объявить глобальную переменную.


Python:
from tkinter import *

root = Tk()
root.title("Bets")
root.resizable(width=False, height=False)
root.geometry("200x40")
root.configure(bg='#bababa')

listt = []
a = 0

def bet():
    global a
    a += 1
    listt.append(a)
    print(listt)


btn1 = Button(root ,text=' ', bg='#a34040', fg='#fff', command=bet)
btn1.place(x=10, y=10, width=180, height=20)
root.mainloop()
Я объяснял проблему и причину её появления. А так вы очень помогли, большое спасибо
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!