from tkinter import *
import random
import re
targetNum=random.randint(1,1024)
minNum=1
maxNum=1024
count=0
def Guess(event=None):
if inputentry.get() and re.match(r"\d+",inputVar.get()):
global maxNum,minNum,count
guessNum=int(inputentry.get())
count+=1
if minNum<=guessNum<=maxNum:
if guessNum==targetNum:
msgVar.set("恭喜你,猜对了,它是 %d,共猜了 %d 次"%(targetNum,count))
elif guessNum<targetNum:
minNum=guessNum
msgVar.set("小了,请输入%d-%d之间的数字" %(minNum,maxNum))
else:
maxNum=guessNum
msgVar.set("大了,请输入%d-%d之间的数字" % (minNum, maxNum))
else:
msgVar.set("猜数字的范围是:%d-%d" %(minNum,maxNum))
else:
msgVar.set("请输入一个数字")
inputVar.set("")
inputentry.focus_set()
root=Tk()
root.title("猜数字小游戏")
root.geometry("300x150")
msgVar=StringVar()
msgVar.set("输入数字,开始猜数(1-1024)")
messagelabel=Label(root,textvariable=msgVar,height=3)
messagelabel.pack(pady=5)
inputVar=StringVar()
inputentry=Entry(root,textvariable=inputVar)
inputentry.pack(pady=5)
guessButton=Button(root,text="猜",command=Guess,width=10,cursor="hand2")
guessButton.pack(pady=5)
root.bind("<Return>",Guess)#按下enter,猜
root.mainloop()
运行界面: