1. 程式人生 > >Python Tkinter實現的計算器

Python Tkinter實現的計算器

from tkinter import* from tkinter.ttk import* def frame(master): """將共同的屬性作為預設值, 以簡化Frame建立過程""" w =Frame(master) w.pack(side=TOP, expand=YES, fill=BOTH) return w def button(master, text, command): """提取共同的屬性作為預設值, 使Button建立過程簡化""" w =Button(master, text=text, command=command, width=6)
w.pack(side=LEFT, expand=YES, fill=BOTH, padx=2, pady=2) return w def back(text): """將text最末的字元刪除並返回""" if len(text)>0: return text[:-1] else: return text def calc(text): """用eval方法計算表示式字串""" try: if(sep_flag.get()==0): returneval(del_sep(text)) else: return add_sep(str(eval(del_sep(text))))
except(SyntaxError,ZeroDivisionError,NameError): return'Error' def add_sep(text): """向引數傳入的數字串中新增千位分隔符 這裡考慮了三種情況: 無整數部份, 無小數部份, 同時有整數和小數部份 由於字串是不可改變的, 這裡由字串生成列表以便執行insert操作和 extend操作, 操作完成後最由列表生成字串返回 """ dot_index = text.find('.') if dot_index >0: text_head = text
[:dot_index] text_tail = text[dot_index:] elif dot_index <0: text_head = text text_tail ='' else: text_head ='' text_tail = text list_ =[charforcharin text_head] length = len(list_) tmp_index =3 while length - tmp_index >0: list_.insert(length - tmp_index,',') tmp_index +=3 list_.extend(text_tail) new_text ='' forcharin list_: new_text +=char return new_text def del_sep(text): """刪除數字串中所有的千位分隔符""" return text.replace(',','') # 開始介面的實現 root =Tk() root.title("Calculator")# 新增標題 main_menu =Menu()# 建立最上層主選單 # 建立Calculator選單, 並加入到主選單 calc_menu =Menu(main_menu, tearoff=0) calc_menu.add_command(label='Quit', command=lambda:exit()) main_menu.add_cascade(label='Calculator', menu=calc_menu) # 建立View選單, 並加入到主選單 # 其中"Show Thousands Separator"選單項是一個Checkbutton text =StringVar() sep_flag =IntVar() sep_flag.set(0) view_menu =Menu(main_menu, tearoff=0) view_menu.add_checkbutton(label='Show Thousands Separator', variable=sep_flag, command=lambda t=text: t.set(add_sep(t.get()))) main_menu.add_cascade(label='View', menu=view_menu) root['menu']= main_menu # 將主選單與root繫結 # 建立文字框 Entry(root, textvariable=text).pack(expand=YES, fill=BOTH, padx=2, pady=4) style =Style() style.configure('TButton', padding=3) # 建立第一行三個按鈕 fedit = frame(root) button(fedit,'Backspace',lambda t=text: t.set(back(t.get()))) button(fedit,'Clear',lambda t=text: t.set('')) button(fedit,'±',lambda t=text: t.set('-('+t.get()+')')) # 每行四個, 建立其餘四行按鈕 for key in('789/','456*','123-','0.=+'): fsymb = frame(root) forcharin key: ifchar=='=': button(fsymb,char,lambda t=text: t.set(calc(t.get()))) else: button(fsymb,char,lambda t=text, c=char: t.set(t.get()+c)) root.mainloop()

相關推薦

Python Tkinter實現的簡單計算器

最近初次接觸Python,就用計算器來練練手吧。 from tkinter import * def GetInputValue(ShowNumEntry, Value):#用來顯示值 ShowNumEntry.insert(END,Value) def GetN

Python Tkinter實現計算器

from tkinter import* from tkinter.ttk import* def frame(master): """將共同的屬性作為預設值, 以簡化Frame建立過程""" w =Frame(master) w.pack(side=TOP, expand=YES, fil

python tkinter實現簡單計算器

功能分析 基礎功能 需要有顯示區,可以使用label,text,entry 顯示按鍵0-9以及運算子 滑鼠點選按鍵時,按鍵的值或者運算結果能夠在顯示區顯示 能夠清空顯示區以備下一次運算輸入

python tkinter 實現簡單計算器2

功能完善 除法除數為0的異常處理 非數字輸入的異常處理 程式碼實現 from tkinter import * from tkinter.messagebox import showinfo class Calculator(Frame):

80行程式碼使用Python+tkinter實現一個計算器

閒話不說,直奔主題。建議大家跟著敲一遍程式碼,體會一下程式碼複用、字串方法的運用和動態建立元件的

Python tkinter 實現簡單登陸註冊 基於B/S三層體系結構,實現用戶身份驗證

cte cursor 實現簡單 結果 pass 分享圖片 not null for 技術 Python tkinter 實現簡單登陸註冊 最終效果 開始界面 ? 註冊 登陸 ? 源碼 login.py # encoding=utf-8 f

python tkinter實現介面切換_code

跳轉實現思路 主程式相當於桌子: import tkinter as tk root = tk.Tk() 而不同的Frame相當於不同的桌布: face1 = tk.Frame(root) face2 = tk.Frame(root) ..

Python Tkinter簡易計算器

今天閒暇時間用tkinter寫了個簡易計算器,可實現簡單的加減乘除運算,用了Button和Entry2個控制元件,下面是程式碼,只是簡單的用了偏函式partial,因為那麼多button的大部分引數都是一樣的,使用偏函式可以簡化引數傳遞,避免同樣的引數傳遞寫N次。 #

基於Tkinter用50行Python程式碼實現簡易計算器

Tkinter一般是python自帶的,所以程式碼不需要其他元件,本程式是在python2.7版本實現的。   主要涉及了tkinter的使用,函式定義和呼叫,匿名函式的使用,類成員函式定義等python基礎知識,適合新手學習。  程式碼如下: from Tkinter

使用python實現計算器功能

import 運算符 while 正則表達 技術 整數 body 功能 計算器 # 實現帶括號的復雜加減乘除優先級運算# 主要運用到了正則表達式、while循環、列表的幾種方法等。# 為實現要求的運算功能該代碼共分為兩個部分,一個是實現不帶括號的加減乘除運算的函數add_s

python實現計算器

blog pri __name__ special UNC 循環 action 最終 spec 1 import re 2 import functools 3 4 5 def minus_operator_handler(formula):

python(GUI)程式設計:tkinter實現跨平臺的記事本

實現一個簡單的編輯記事本,實現記事本的最基本功能,麻雀雖小五臟俱全 tkinter實現跨平臺的記事本效果圖: 原始碼: # -*- encoding:utf -*- from tkinter import * from tkinter.messagebox import * fr

利用tkinter實現簡單計算器功能(不使用eval函式)

利用tkinter實現簡單計算器功能(不使用eval函式) 一、思路 tkinter: 佈置主介面; 上部為數字顯示介面; 下部為數字鍵與功能鍵介面; 邏輯: 程式只考慮兩個運算元進行計算的情況,不考慮複雜情況 展示:

Python實戰:利用Tkinter實現屏保程式

利用Tkinter實現綵球碰撞屏保 一、架構與思路 (1)主函式: main():通過類啟動程式; (2)類: ScreenSaver():用於定義屏保和主畫布,呼叫球建立、運動等函式; RandomBall():定義球的基本屬性、球建立與運動

python 實現計算器功能 輸入字串,輸出相應結果

1 import re 2 formul='2*(1+2*6/3-2)+5+2*(1+6/2/3-2)' 3 4 def addjian(func): 5 digital = re.split('(\D)',func) 6 for index in rang

Python GUI實現英漢字典功能、Python tkinter編寫英漢字典

Python GUI實現字典功能、Python tkinter編寫字典 需求分析 本地字典檔案內容如下: Africa n. 非洲 Aids n. 愛滋病 America n. 美洲 April n. 四月 Arab adj. 阿拉伯的\nn. 阿拉伯人 Asia n. 亞洲

Tkinter實現一個秒錶(參照python cookbook)

#coding=utf8 from Tkinter import * import time class StopWatch(Frame):     '''實現一個秒錶部件'''     msec = 100     def __init__(self, parent=No

python tkinter與Mysql資料庫互動實現賬號登陸_code

 本例已經實現的資料庫password,資料庫的表以及表結構如下: 表中已經插入的資訊: 程式碼實現 # -*- coding: utf-8 -*- """ Created on Tue Nov 6 14:29:54 2018 Description:實現tk

python tkinter控制元件treeview的資料列表顯示的實現_code

素材檔案 result.txt result2.txt result.txt檔案的資料來源是爬取貓眼電影前一百名的電影,而result2.txt檔案只不過是內容上把result.txt的內容複製幾十次,使其資料足夠多,現截選如下: {"排名": "1", "片名": "霸

PythonTkinter實現時鐘

import Tkinter,sys,time root=Tkinter.Tk() root.minsize(500, 500) Label1=Tkinter.Label(text=time.strftime('%Y-%m-%d %H:%M:%S',time.localti