python用tkinter随机数猜数字大小
没事做,看到好多人用scratch做的猜大小的示例,也用python的tkinter搞一个猜大小的代码玩玩。
猜数字代码
from tkinter import *
from random import randint# 定义确定按钮的点击事件
def hit(x,y):global s_Labprint(x.get(),y)try:n=int(x.get())if n>y:s="猜大了"if n==y:s="%d,你猜对了"%yif n<y:s="猜小了"s_Lab.set(s)x.set('')except:s_Lab.set("输入必须是数字")x.set('')# 定义重置按钮的事件
def reset():global n_randnum_E.set('')s_Lab.set(ss)n_rand=randint(s_n.get(),e_n.get())print(n_rand)# 定义回车键事件
def on_r(evt):hit(num_E,n_rand)def on_res(evt):reset()def n_rand():global n_randtry:s, n = s_n.get(), e_n.get()n_rand=randint(s,n)print(n_rand)s_Lab.set("猜一个%d到%d的数"%(s,n))except:s_Lab.set("请正确设置")#定义窗口
win=Tk()
win.title('猜一猜')
win.geometry('300x220')frm1=LabelFrame(win,text="随机数范围设置")
frm1.pack(padx=10,pady=5)a_lb=Label(frm1,text="设置起始与结束值,初始随机数状态为0").pack()s_n=IntVar()
s_E1=Entry(frm1,width=10,textvariable=s_n).pack(side='left',padx=10,pady=5)z_lb=Label(frm1,text="至").pack(side='left',pady=5)e_n=IntVar()
e_E2=Entry(frm1,width=10,textvariable=e_n).pack(side='left',padx=10,pady=5)set_btn=Button(frm1,width=10,text="设置",command=n_rand).pack(side='right',padx=10,pady=5)# 随机取一个1~100的整数,标签的初始显示字符
n_rand=randint(0,0)
ss="猜一个整数"# frm2=tkinter.LabelFrame(win)
frm2=Frame(win)
frm2.pack(padx=10,pady=5)
# Label是第1个控件,从左向右布局
s_Lab=StringVar() #定义动态字符串
s_Lab.set(ss)
s=Label(frm2, bg='red', fg='yellow',width=25,textvariable=s_Lab)
s.pack(side=LEFT, fill=BOTH, padx=5, pady=5)# 3个Button自上而下布局
num_E=StringVar() #定义动态字符串
Entry(frm2, width=10,textvariable=num_E,justify=CENTER).pack(padx=5, pady=5)r_btn=Button(frm2, text='确定', width=10,command=lambda:hit(num_E,n_rand))
r_btn.pack(padx=5, pady=5)Button(frm2, text='重置', width=10,command=reset).pack(padx=5, pady=5)#绑定“enter”事件与“shift"事件
win.bind('<Return>', on_r)
win.bind('<Shift_L>', on_res)
# win.bind('<Key>', on_res)win.mainloop()
界面显示如下