满足While-True语句中的条件后,Tkinter停止运行。所以我一直在尝试在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()
答案 0 :(得分: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
elif conint == number:
tk.messagebox.showinfo(message="Well Done!")
break
elif guessesTaken == 5:
tk.messagebox.showinfo(message="error")
break
我所做的就是在while循环内添加最后两个if语句并添加一个break。在那之后,我添加了“要猜测的数字”,当出现“做得好的”时,程序不会崩溃或挂在while循环中。