本文實(shí)現(xiàn)用python編寫一個(gè)帶界面的計(jì)算器小程序,當(dāng)然這個(gè)計(jì)算器功能很簡單,只能進(jìn)行一些簡單的數(shù)學(xué)運(yùn)算,很適合初學(xué)者,希望能給大家?guī)硪恍﹩l(fā)
創(chuàng)新互聯(lián)是專業(yè)的綏棱網(wǎng)站建設(shè)公司,綏棱接單;提供成都做網(wǎng)站、網(wǎng)站建設(shè),網(wǎng)頁設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行綏棱網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來合作!實(shí)驗(yàn)前提
程序代碼
# coding: utf-8 # 將tkinter改為Tkinter兼容Python 2.x from tkinter import * class App: def __init__(self, master): self.master = master self.initWidgets() self.hi = None def initWidgets(self): # 創(chuàng)建一個(gè)輸入組件 self.show = Label(relief=SUNKEN, font=('Courier New', 24),\ width=23, bg='white', anchor=W) # 對該輸入組件使用Pack布局,放在容器頂部 self.show.pack(side=TOP, pady=10) p = Frame(self.master) p.pack(side=TOP) # 定義字符串的元組 names = ("+", "1" , "2" , "3" , "↺" ,"-", "4" , "5" , "6" , "**" , "*", "7" , "8" , "9", "http://", "/" , "." , "0" , "%", "=") # 遍歷字符串元組 for i in range(len(names)): # 創(chuàng)建Button,將Button放入p組件中 b = Button(p, text=names[i], font=('Verdana', 20), width=5) b.grid(row=i // 5, column=i % 5) # 為鼠標(biāo)左鍵的單擊事件綁定事件處理方法 b.bind('', self.click) # 為鼠標(biāo)左鍵的雙擊事件綁定事件處理方法 if b['text'] == '↺': b.bind(' ', self.clean) # 定義一個(gè)記錄輸入數(shù)字次數(shù)的變量 self.i = 0 def click(self, event): # 如果用戶單擊的是數(shù)字鍵或點(diǎn)號 if(event.widget['text'] in ('0', '1', '2', '3',\ '4', '5', '6', '7', '8', '9', '.')): # 判斷self.i是否為0,0的話清空show['text']的值 if self.i == 0 : self.show['text'] = '' self.show['text'] = self.show['text'] + event.widget['text'] self.i = self.i + 1 print(self.i) # 如果用戶單擊了運(yùn)算符 elif(event.widget['text'] in ('+', '-', '*', '/', '%', '**', '//')): # 把輸入的數(shù)字與輸入的字符相結(jié)合,組成一個(gè)數(shù)學(xué)運(yùn)算式 self.show['text'] = self.show['text'] + event.widget['text'] elif(event.widget['text'] == '=' and self.show['text'] is not None): # 賦值給self.hi self.hi = self.show['text'] # 其實(shí)這一步可以不要,主要作用是在調(diào)試時(shí)可以在后臺看輸入的數(shù)據(jù) print(self.hi) # 使用eval函數(shù)計(jì)算表達(dá)式的值 self.show['text'] = str(eval(self.hi)) self.hi = None self.i = 0 # 點(diǎn)擊↺(恢復(fù))按鈕時(shí),程序清空計(jì)算結(jié)果、將表達(dá)式設(shè)為None def clean(self, event): self.hi = None self.show['text'] = '' root = Tk() root.title("簡單科學(xué)計(jì)算器") App(root) root.mainloop()
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。