@Dima_dawefwf

Как выполнить действие но только 1 раз?

Здраствуйте!
хотел создать программу которая будет выполнять части кода случайным образом к примеру изменять цвет в окне или шрифт или менять название кнопки но только 1 раз т.е если оно меняет название кнопки на 1 как в примере то после нажатия на кнопку оно не могло поменять его на 1 опять

from tkinter import *
import random

root=Tk()
root.title("test Kursovoi")
root.geometry("400x500")

def K3():
b1.configure(text=3)
A.remove(K3)


def K1():
b1.configure(text=1)
A.remove(K1)



def K2():
b1.configure(text=2)
A.remove(K2)

A=[K2, K1, K3]

b1=Button(root, text="4", command=random.choice(A))
b1.pack()


root.mainloop()

вот примерно что у меня получилось но не могу заставить его удалить то что оно уже выводило
Помогите
  • Вопрос задан
  • 135 просмотров
Решения вопроса 1
Vindicar
@Vindicar
RTFM!
> b1=Button(root, text="22211", command=random.choice(A))
Вот в этот момент у тебя случано выбирается одна из трёх функций, и назначается на обработку нажатия кнопки.
Только в этот момент! Потом она так и остаётся.
Так что если хочешь, чтобы случайный выбор делался при каждом нажатии на кнопку - делай его при каждом нажатии на кнопку, т.е. в обработчике нажатия. А не снаружи. Внезапно, да?

A=['1', '2', '3']

def clickity():
  index = random.randint(0, len(A)-1)
  item = A.pop(index) #выталкиваем элемент из списка и вставляем его в переменную
  print(item)

b1=Button(root, text="22211", command=clickity)
b1.pack()
root.mainloop()
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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