云優(yōu)化網(wǎng)站建設(shè)seo有什么作用
python用tkinter隨機(jī)數(shù)猜數(shù)字大小
沒事做,看到好多人用scratch做的猜大小的示例,也用python的tkinter搞一個猜大小的代碼玩玩。
猜數(shù)字代碼
from tkinter import *
from random import randint# 定義確定按鈕的點(diǎn)擊事件
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("輸入必須是數(shù)字")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的數(shù)"%(s,n))except:s_Lab.set("請正確設(shè)置")#定義窗口
win=Tk()
win.title('猜一猜')
win.geometry('300x220')frm1=LabelFrame(win,text="隨機(jī)數(shù)范圍設(shè)置")
frm1.pack(padx=10,pady=5)a_lb=Label(frm1,text="設(shè)置起始與結(jié)束值,初始隨機(jī)數(shù)狀態(tài)為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="設(shè)置",command=n_rand).pack(side='right',padx=10,pady=5)# 隨機(jī)取一個1~100的整數(shù),標(biāo)簽的初始顯示字符
n_rand=randint(0,0)
ss="猜一個整數(shù)"# frm2=tkinter.LabelFrame(win)
frm2=Frame(win)
frm2.pack(padx=10,pady=5)
# Label是第1個控件,從左向右布局
s_Lab=StringVar() #定義動態(tài)字符串
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() #定義動態(tài)字符串
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()
界面顯示如下