python GUI 图形用户界面应用(tkinter)

产生【1,1000】之间的随机整数,利用图形用户界面设计猜数字游戏程序。注意,猜数时利用二分检索原理(python)

# coding=gbk
from tkinter import *
import random 
number=random.randint(1,1000)
running,num,nmax,nmin=True,0,1000,1
def btnClose (event):
	root.destroy() #退出主窗口
def btnGuess (event):
	global nmax,nmin,num,running
	if running:
		vall=int (ent.get())
		if vall==number:
			lbl_qv("恭喜,答对了!")
			num+=1
			running=False
			numGuess()
		elif vall<number:
			if vall>nmin:
				nmin=vall
				num+=1
				lbl_min.config (lbl_min,text=nmin)
			lbl_qv ("猜小了请重新输入!")
		else:
			if vall<nmax:
				nmax=vall
				num+=1
				lbl_max.config(lbl_max,text=nmax)
			lbl_qv ("猜大了请重新输入!")
	else:
		lbl_qv ("已经答对了!")
def numGuess():
	if num==1:
		lbl_qv("恭喜,一次答对!")
	elif num <=15:
		lbl_qv("答对了,尝试次:"+str(num))
	else:
		lbl_qv("错误超过15次了!")
def lbl_qv(vtxt):
	lbl_q.config(lbl_q,text=vtxt)
root=Tk()
root.title("猜数字游戏")
root.geometry("300x120+200+200")
frm1=LabelFrame(root,text="数字范围")
lbl_max=Label(frm1,text=nmax)
lbl_max.pack(side=TOP,fill=X)
lbl_min=Label(frm1,text=nmin)
lbl_min.pack(side=BOTTOM,fill=X)
frm1.pack(side=LEFT,fill=X)
frm2=LabelFrame(root)
lbl_q=Label(frm2,width=25)
lbl_qv("请输入[1,1000]之间的整数:")
lbl_q.pack(side=TOP)
ent=Entry(frm2,width=10)
ent.pack(side=BOTTOM)
ent.bind("<Return>",btnGuess)
frm2.pack(side=LEFT,fill=X)
frm3=Frame(root,relief="groove")
btnG=Button(frm3,text="开 始")
btnG.bind("<Button-1>",btnGuess)
btnG.pack(side=TOP)
btnC=Button(frm3,text="退 出")
btnC.bind("<Button-1>",btnClose)
btnC.pack(side=BOTTOM)
frm3.pack(side=LEFT,fill=X)
ent.focus_set()
root.mainloop()

运行结果:
在这里插入图片描述在这里插入图片描述在这里插入图片描述
主要是熟悉tkinter模块及常用控件的使用!

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值