99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
首頁精彩閱讀基于python的Tkinter實現(xiàn)一個簡易計算器
基于python的Tkinter實現(xiàn)一個簡易計算器
2017-08-16
收藏

基于python的Tkinter實現(xiàn)一個簡易計算器

本文實例介紹了基于python的Tkinter實現(xiàn)簡易計算器的詳細代碼,分享給大家供大家參考,具體內(nèi)容如下

第一種:使用python 的 Tkinter實現(xiàn)一個簡易計算器

#coding:utf-8
fromTkinterimport*
importtime
root=Tk()
defcacl(input_str):
if"x"ininput_str:
ret=input_str.split("x")
returnint(ret[0])*int(ret[1])
defcallback(n):
printn
defcallback1(n):
printn
classApp:
def__init__(self, master):
frame1=Frame(master)
frame1.pack()
frame=Frame(master)
frame.pack()
Button(frame, text="1",command=lambda: callback(1) ).grid(row=0,column=0)
Button(frame, text="2",command=lambda: callback(2) ).grid(row=0,column=1)
Button(frame, text="3",command=lambda: callback(3) ).grid(row=0,column=2)
Button(frame, text="4",command=lambda: callback(4) ).grid(row=1,column=0)
Button(frame, text="5",command=lambda: callback(5) ).grid(row=1,column=1)
Button(frame, text="6",command=lambda: callback(6) ).grid(row=1,column=2)
Button(frame, text="7",command=lambda: callback(7) ).grid(row=2,column=0)
Button(frame, text="8",command=lambda: callback(8) ).grid(row=2,column=1)
Button(frame, text="9",command=lambda: callback(9) ).grid(row=2,column=2)
Button(frame, text="0",command=lambda: callback(0) ).grid(row=3,column=0)
Button(frame, text="+",command=lambda: callback1("+") ).grid(row=3,column=1)
Button(frame, text="-",command=lambda: callback1("-") ).grid(row=3,column=2)
Button(frame, text="*",command=lambda: callback1("*") ).grid(row=4,column=1)
Button(frame, text="/",command=lambda: callback1("/") ).grid(row=4,column=2)
Button(frame, text="=", command=self.say_hi).grid(row=4,column=0)
w=Label(frame1,text="輸入結(jié)果")
w.pack()
self.e=Entry(frame1)
self.e.pack(padx=5)
w1=Label(frame1,text="計算結(jié)果")
w1.pack()
v=StringVar()
e1=Entry(frame1, textvariable=v)
v.set("")
self.v=v
e1.pack()
defsay_hi(self):
print"hi there, everyone!",self.e.get()
input_str=self.e.get()
self.v.set(cacl(input_str))
app=App(root)
root.mainloop()

第二種:基于Tkinter用50行Python代碼實現(xiàn)簡易計算器
 Tkinter一般是python自帶的,所以代碼不需要其他組件,本程序是在python2.7版本實現(xiàn)的。

主要涉及了tkinter的使用,函數(shù)定義和調(diào)用,匿名函數(shù)的使用,類成員函數(shù)定義等python基礎(chǔ)知識,適合新手學習。

代碼如下:

fromTkinterimport*
  
#創(chuàng)建橫條型框架
defframe(root, side):
 w=Frame(root)
 w.pack(side=side, expand=YES, fill=BOTH)
 returnw
#創(chuàng)建按鈕
defbutton(root, side, text, command=None):
 w=Button(root, text=text, command=command)
 w.pack(side=side, expand=YES, fill=BOTH)
 returnw
#繼承了Frame類,初始化程序界面的布局
classCalculator(Frame):
 def__init__(self):
    
  Frame.__init__(self)
    
  self.pack(expand=YES, fill=BOTH)
  self.master.title('Simple Calculater')
    
  display=StringVar()
  #添加輸入框
  Entry(self, relief=SUNKEN,
    textvariable=display).pack(side=TOP, expand=YES,
           fill=BOTH)
  #添加橫條型框架以及里面的按鈕
  forkeyin('123','456','789','-0.'):
   keyF=frame(self, TOP)
   forcharinkey:
    button(keyF, LEFT, char,lambdaw=display, c=char:w.set(w.get()+c))
  #添加操作符按鈕
  opsF=frame(self, TOP)
  forcharin'+-*/=':
   ifchar=='=':
    btn=button(opsF, LEFT, char)
    btn.bind('',lambdae, s=self, w=display:s.calc(w),'+')
  
   else:
    btn=button(opsF, LEFT, char,lambdaw=display, s='%s'%char:w.set(w.get()+s))
  #添加清除按鈕
  clearF=frame(self, BOTTOM)
  button(clearF, LEFT,'clear',lambdaw=display:w.set(''))
  
 #調(diào)用eval函數(shù)計算表達式的值
 defcalc(self, display):
  try:
   display.set(eval(display.get()))
  except:
   display.set("ERROR")
#程序的入口
if__name__=='__main__':
 print('ok')
 Calculator().mainloop()

實現(xiàn)效果如下圖:

以上就是本文的全部內(nèi)容,希望對大家的學習Python程序設(shè)計有所幫助。

數(shù)據(jù)分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數(shù)據(jù)分析師資訊
更多

OK
客服在線
立即咨詢
客服在線
立即咨詢
') } function initGt() { var handler = function (captchaObj) { captchaObj.appendTo('#captcha'); captchaObj.onReady(function () { $("#wait").hide(); }).onSuccess(function(){ $('.getcheckcode').removeClass('dis'); $('.getcheckcode').trigger('click'); }); window.captchaObj = captchaObj; }; $('#captcha').show(); $.ajax({ url: "/login/gtstart?t=" + (new Date()).getTime(), // 加隨機數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調(diào)用 initGeetest 進行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調(diào),回調(diào)的第一個參數(shù)驗證碼對象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺檢測極驗服務(wù)器是否宕機 new_captcha: data.new_captcha, // 用于宕機時表示是新驗證碼的宕機 product: "float", // 產(chǎn)品形式,包括:float,popup width: "280px", https: true // 更多配置參數(shù)說明請參見:http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計時完成 $(".getcheckcode").removeClass('dis').html("重新獲取"); }else{ $(".getcheckcode").addClass('dis').html("重新獲取("+_wait+"s)"); _wait--; setTimeout(function () { codeCutdown(); },1000); } } function inputValidate(ele,telInput) { var oInput = ele; var inputVal = oInput.val(); var oType = ele.attr('data-type'); var oEtag = $('#etag').val(); var oErr = oInput.closest('.form_box').next('.err_txt'); var empTxt = '請輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請輸入正確的'+oInput.attr('placeholder')+'!'; var pattern; if(inputVal==""){ if(!telInput){ errFun(oErr,empTxt); } return false; }else { switch (oType){ case 'login_mobile': pattern = /^1[3456789]\d{9}$/; if(inputVal.length==11) { $.ajax({ url: '/login/checkmobile', type: "post", dataType: "json", data: { mobile: inputVal, etag: oEtag, page_ur: window.location.href, page_referer: document.referrer }, success: function (data) { } }); } break; case 'login_yzm': pattern = /^\d{6}$/; break; } if(oType=='login_mobile'){ } if(!!validateFun(pattern,inputVal)){ errFun(oErr,'') if(telInput){ $('.getcheckcode').removeClass('dis'); } }else { if(!telInput) { errFun(oErr, errTxt); }else { $('.getcheckcode').addClass('dis'); } return false; } } return true; } function errFun(obj,msg) { obj.html(msg); if(msg==''){ $('.login_submit').removeClass('dis'); }else { $('.login_submit').addClass('dis'); } } function validateFun(pat,val) { return pat.test(val); }