Форум сайта python.su
0
Здравствуйте, захотелось попробовать сделать угадай число на tkinter(код ниже), но всплыли 2 проблемы, 1я это-я не могу в функцие btn2 добавить для кнопки команду (которая 2мя строчками ниже), и 2я это когда я выбирая сложность 1 (я делаю ее как пример), то сразу после нажатия вылезает надпись ‘число больше’. 1я проблема понимаю в чем но не могу решить ее (я еще не все понимаю), а вторая я даже не знаю в чем она заключается. Всем заранее спасибо)
P.S снизу начальный код и мейнлуп, не обращайте внимания
import random from tkinter import * def clicked(): first() def btn2(): btn2 = Button(tk, text='Click') btn2.pack() j = imp.get() def first(): global x x = str(random.randint(1, 100)) global i i = str(btn2()) first2() def first2(): if i == x: NUMBER1=Label(tk,text='Вы угадали!') NUMBER1.pack() NUMBER1.place(x=100,y=300) elif x < i: NUMBER2=Label(tk,text='Загаданное число больше') NUMBER2.pack() NUMBER2.place(x=100, y=280) elif i > x: NUMBER1.configur(text='Загаданное число меньше') tk = Tk() words = Label(tk, text = 'Сложность') words.pack() tk.title('Игра "Угадай число"') canvas = Canvas(tk, width=400, height = 400) canvas.pack() btn=Button(tk, text='1', command=clicked) btn.pack() btn.place(x=170, y=20) imp=Entry(tk, width=10) imp.pack() imp.place(x=200, y=300) def second(): x = random.randint(1, 500) while True: print('Угадайте от 1 до 500') i = int(input()) if i == x: print('Правильно!') elif i < x: print('Загаданное число больше') elif i > x: print('Загаданное число меньше') def third(): x = random.randint(1, 1000) while True: print('Угадайте от 1 до 1000') i = int(input()) if i == x: print('Правильно!') elif i < x: print('Загаданное число больше') elif i > x: print('Загаданное число меньше') tk.mainloop()
Отредактировано dandi1279 (Сен. 6, 2019 13:09:44)
Офлайн
44
когда добавляете код выделите (весь) его и нажмите такой значек в <> панели где пишете cообщение
(это между человеком с облаком и смайликом) тогда у вас получится что то вроде этого
# здесь лучше разместить коментарий a = int(input('Введите число') q = 2 while q != a: w = 2 if w//q == w/q: print(q) q += 1 else : w += 1
''' здесь не читаем ''' # проблемное место (если есть ошибка пишем сюда же ее)
# coding: utf-8 # попытка причесать ваш код, ну такая ... не понятно что вы вобще хотите import random from tkinter import * tk = Tk() # так задается текс в label v = StringVar() v.set('Сложность') words = Label(tk, textvariable=v) words.pack() tk.title('Игра "Угадай число"') canvas = Canvas(tk, width = 200, height = 100) canvas.pack() imp = Entry(tk, width = 10) imp.pack() imp.place() def first(): not_x = str(random.randint(1, 100)) print(not_x, "not_x") # получение даных введеных в текстовое поле # зачем вы создаете еще одну кнопку btn2? # что вы от нее хотите получить? i = imp.get() print(i, "i") if i == not_x: v.set('Вы угадали!') elif not_x < i: v.set('Загаданное число больше') elif i > not_x: v.set('Загаданное число меньше') # пример изменения свойств btn2 так то глобальные переменые это не очень но global num_clik num_clik += 1 rrr.set(str(num_clik)) def dliaBtn2(): print("-->", num_clik) num_clik = 0 # обратите внимание на command = first, в btn2 наверное также надо btn=Button(tk, text = '1', command = first) btn.pack() rrr = StringVar() rrr.set(str(num_clik)) btn2 = Button(tk, textvariable=rrr, command = dliaBtn2) btn2.pack() j = imp.get() print(j, "j") tk.mainloop()
и вставьте ссылку на его url Отредактировано AD0DE412 (Сен. 6, 2019 22:12:16)
Офлайн