簡體   English   中英

Tkinter While-True 語句滿足條件后停止運行

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM