[英]Tkinter stop running after conditions are met in While-True Statement
Tkinter 在 While-True 語句中滿足條件后停止運行。 所以我一直在嘗試在 tkinter 中創建一個猜數字游戲。 但是在 def game() 部分,當我猜到正確的數字或
如果 conint == 數字:
tk.messagebox.showinfo(message="干得好!")
程序停止運行/掛起
import tkinter as tk
from tkinter import messagebox
from tkinter import *
import random
guess = Tk()
guess.title("Guessing Game")
frame = LabelFrame(guess, text="GUESSING GAME", font='Verdana 15', padx=5, pady=5)
frame.pack(padx=10, pady=10)
title = Label(frame, text="This is is a guessing game!").pack()
title2 = Label(frame, text="I am thinking of a number between 1 and 20.").pack()
e = Entry(frame, width=35, borderwidth=5)
e.pack()
e.insert(0, "Enter a number")
e.delete(0, END)
number = random.randint(1, 20)
print(number)
global guessesTaken
guessesTaken = 0
def game():
global guessesTaken
conint = int(e.get())
while True:
guessesTaken = guessesTaken + 1
if conint < number:
print('Your guess is too low.')
tk.messagebox.showinfo(message="Your guess is too low!")
break
elif conint > number:
print('Your guess is too high.')
tk.messagebox.showinfo(message="Your guess is too high")
break
if conint == number:
tk.messagebox.showinfo(message="Well Done!")
if guessesTaken == 5:
tk.messagebox.showinfo(message="error")
numbutton = Button(frame, text="Start", command=lambda: game()).pack()
guess.mainloop()
我運行了你的代碼。
def game():
global guessesTaken
conint = int(e.get())
while True:
guessesTaken = guessesTaken + 1
if conint < number:
print('Your guess is too low.')
tk.messagebox.showinfo(message="Your guess is too low!")
break
elif conint > number:
print('Your guess is too high.')
tk.messagebox.showinfo(message="Your guess is too high")
break
elif conint == number:
tk.messagebox.showinfo(message="Well Done!")
break
elif guessesTaken == 5:
tk.messagebox.showinfo(message="error")
break
我所做的只是在 while 循環中添加最后兩個 if 語句並添加一個中斷。 之后,我添加了“要猜的數字”,當出現“做得好”時,程序不會崩潰或掛在 while 循環中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.