Уведомления

Группа в Telegram: @pythonsu

#1 Май 15, 2023 19:47:33

H0pZyk
Зарегистрирован: 2023-05-15
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите! Функция def начинает работать до того как её вызывает кнопка

Помогите! Функция def начинает работать до того как её вызывает кнопка

Вот сам код:

from tkinter import *
from tkinter import ttk
import random

root = Tk()
root.title(“METANIT.COM”)
root.geometry(“500x400”)

editor = Text(height=5)
editor.pack(anchor=N, fill=X)

label = ttk.Label()
label.pack(anchor=N, fill=BOTH)

print(123)
vibor = str(editor.get(“1.0”, “end”))
def game():

print(123)


chislorob = str((random.randint(1, 100)))


w = 0
while w <= 4:
if chislorob in :
quit('Случайное число является простым, поэтому перезапустите программу и надейтесь что оно не попадётся снова')
if vibor == chislorob:
quit('Ура!!! Вы победили!')
else:
editor.delete(“1.0”, END)
podvibor = str(editor.insert('1.0', ‘Вы выбрали не правильное число. Хоти те подсказку???’))

if podvibor == :
podchpr = random.randint(1, 10)
podch = str(chislorob // podchpr)
w = w + 1

if w == 3:

editor.insert(“1.0”, w)
#quit('У вас закончились жизни')

button = ttk.Button(text=“ввести”, command=game())
button.pack(side=BOTTOM)

root.mainloop()

Отредактировано H0pZyk (Май 15, 2023 20:05:05)

Офлайн

#2 Май 15, 2023 21:05:26

ZerG
Зарегистрирован: 2012-04-05
Сообщения: 2584
Репутация: +  60  -
Профиль   Отправить e-mail  

Помогите! Функция def начинает работать до того как её вызывает кнопка

 command=game
без кавычек и оберните текст в тег код



Влодение рускай арфаграфией - это как владение кунг-фу: настаящие мастира не преминяют ево бес ниабхадимости

Офлайн

#3 Июль 12, 2023 11:44:22

AlanPickett
Зарегистрирован: 2023-07-12
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите! Функция def начинает работать до того как её вызывает кнопка

Проблема заключается в том, что функция game() вызывается сразу после создания кнопки, а не при её нажатии. В строке button = ttk.Button(text=“ввести”, command=game()) вы вызываете функцию game() с помощью скобок, поэтому она вызывается сразу при создании кнопки. Вместо этого вам нужно передать ссылку на функцию game в качестве аргумента command без скобок:

 button = ttk.Button(text=“ввести”, command=game)
Таким образом, функция game будет вызываться только при нажатии на кнопку.
pizza tower

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version