python用tkinter随机数猜数字大小

python用tkinter随机数猜数字大小


没事做,看到好多人用scratch做的猜大小的示例,也用python的tkinter搞一个猜大小的代码玩玩。
猜数字代码

from tkinter import *
from random import randint

# 定义确定按钮的点击事件
def hit(x,y):
    global s_Lab
    print(x.get(),y)
    try:
        n=int(x.get())
        if n>y:s="猜大了"
        if n==y:
            s="%d,你猜对了"%y
        if n<y:s="猜小了"
        s_Lab.set(s)
        x.set('')
    except:
        s_Lab.set("输入必须是数字")
        x.set('')

# 定义重置按钮的事件
def reset():
    global n_rand
    num_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_rand
    try:
        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('', on_r)
win.bind('', on_res)
# win.bind('', on_res)

win.mainloop()

界面显示如下
python用tkinter随机数猜数字大小_第1张图片

你可能感兴趣的:(PYTHON基础,python,开发语言)