您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關如何使用Python實現計算器功能,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
源碼:
# -*- coding:utf-8 -*- #! python2 from tkinter import * __author__ = 'tianshl' __date__ = '2017/10/16' class Application(Frame): def __init__(self): Frame.__init__(self) self.grid() self.mem = '' # 內存中的數據 self.opt = '' # 操作符 self.display = StringVar() # 顯示的數據 self.display.set('0') # 初始值 self.need_cls = False # 是否需要清屏 self.create_widgets() # 清空 def clear(self): self.mem = '' self.display.set('0') # 取反 def negative(self): self.display.set(eval('-' + self.display.get())) # 四則運算 def option(self, opt): if not self.need_cls: self.calculate() self.opt = opt self.need_cls = True self.mem = self.display.get() # 計算結果 def calculate(self): if self.opt: try: self.display.set(eval(self.mem + self.opt + self.display.get())) except Exception: self.display.set('錯誤') self.need_cls = True self.opt = '' self.mem = '' # 百分比 def percent(self): base = float(self.mem or 1) / 100 display = eval('{}*{}'.format(self.display.get(), base)) int_display = int(display) display = int_display if display == int_display else display self.display.set(display) self.need_cls = True # 輸入 def input(self, key): if self.need_cls: self.display.set('0') self.need_cls = False display = self.display.get() if display == '0' and key != '.': self.display.set(key) else: if '.' in display and key == '.': return self.display.set(display + key) # 創建組件 def create_widgets(self): # 顯示框 Entry(self, textvariable=self.display, state="readonly", width=35).grid( row=0, column=0, columnspan=4) # 鍵盤 keyboards = [ ['C', '+/-', '%', '/'], ['7', '8', '9', '*'], ['4', '5', '6', '-'], ['1', '2', '3', '+'], ['0', '.', '='] ] for row, keys in enumerate(keyboards): row_num = 3 + row for col, key in enumerate(keys): if key == 'C': command = self.clear elif key == '+/-': command = self.negative elif key == '%': command = self.percent elif key in ['+', '-', '*', '/']: command = lambda s=key: self.option(s) elif key == '=': command = self.calculate else: command = lambda s=key: self.input(s) bt = Button(self, text=key, command=command, width=6) bt.grid(row=row_num, column=col) app = Application() # 設置窗口標題: app.master.title('www.jb51.net - 計算器') # 設置窗口尺寸/位置 app.master.geometry("326x170+200+200") # 設置窗口不可變 app.master.resizable(width=False, height=False) # 主消息循環: app.mainloop()
運行效果:
關于“如何使用Python實現計算器功能”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。