Python Tkinter實現的簡單計算器
最近初次接觸Python,就用計算器來練練手吧。
from tkinter import * def GetInputValue(ShowNumEntry, Value):#用來顯示值 ShowNumEntry.insert(END,Value) def GetNumOne():#按鈕1並顯示 GetInputValue(ShowNumEntry,"1") def GetNumTwo():#按鈕2並顯示 GetInputValue(ShowNumEntry,"2") def GetNumThree():#按鈕3並顯示 GetInputValue(ShowNumEntry,"3") def GetNumFour():#按鈕4並顯示 GetInputValue(ShowNumEntry,"4") def GetNumFive():#按鈕5並顯示 GetInputValue(ShowNumEntry,"5") def GetNumSix():#按鈕6並顯示 GetInputValue(ShowNumEntry,"6") def GetNumSeven():#按鈕7並顯示 GetInputValue(ShowNumEntry,"7") def GetNumEight():#按鈕8並顯示 GetInputValue(ShowNumEntry,"8") def GetNumNine():#按鈕9並顯示 GetInputValue(ShowNumEntry,"9") def GetNumZero():#按鈕0並顯示 GetInputValue(ShowNumEntry,"0") def GetDot():#按鈕.並顯示 GetInputValue(ShowNumEntry,".") def GetPlus():#按鈕+並顯示 GetInputValue(ShowNumEntry,"+") def GetMinus():#按鈕-並顯示 GetInputValue(ShowNumEntry,"-") def GetClean():#清除 ShowNumEntry.delete(0,END) def GetMultiply():#按鈕*並顯示 GetInputValue(ShowNumEntry,"*") def GetDivision():#按鈕/並顯示 GetInputValue(ShowNumEntry,"/") def GetResult():#計算結果並顯示 result = eval(ShowNumEntry.get()) GetClean() ShowNumEntry.insert(0,str(result)) root = Tk() root.wm_minsize(400,160)#設定視窗大小 ShowNumEntry = Entry(root, width=8, justify="right", font=12 ) ShowNumEntry.grid(row=0, column=5) NumOneBtn = Button(root,text = "1", width = 8,height = 2,command = GetNumOne) NumOneBtn.grid(row=1, column=0) NumTwoBtn = Button(root,text = "2", width = 8,height = 2,command = GetNumTwo) NumTwoBtn.grid(row=1, column=1) NumThreeBtn = Button(root,text = "3", width = 8,height = 2,command = GetNumThree) NumThreeBtn.grid(row=1, column=2) PlusBtn = Button(root,text = "+", width = 8,height = 2,command = GetPlus) PlusBtn.grid(row=1, column=3) MinusBtn = Button(root,text = "-", width = 8,height = 2,command = GetMinus) MinusBtn.grid(row=1, column=4) CleanBtn = Button(root,text = "C", width = 8,height = 2,command = GetClean) CleanBtn.grid(row=1, column=5) NumFourBtn = Button(root,text = "4", width = 8,height = 2,command = GetNumFour) NumFourBtn.grid(row=2, column=0) NumFiveBtn = Button(root,text = "5", width = 8,height = 2,command = GetNumFive) NumFiveBtn.grid(row=2, column=1) NumSixBtn = Button(root,text = "6", width = 8,height = 2,command = GetNumSix) NumSixBtn.grid(row=2, column=2) DotBtn = Button(root,text = ".", width = 8,height = 2,command =GetDot) DotBtn.grid(row=2, column=3) MultiplyBtn = Button(root,text = "*", width = 8,height = 2,command = GetMultiply) MultiplyBtn.grid(row=2, column=4) ResultBtn = Button(root,text = "=", width = 8, height = 2,background = "green",command=GetResult) ResultBtn.grid(row=2, column=5) NumSevenBtn = Button(root,text = "7",width = 8, height = 2, command = GetNumSeven) NumSevenBtn.grid(row=3, column=0) NumEightBtn = Button(root,text = "8", width = 8, height = 2, command = GetNumEight) NumEightBtn.grid(row=3, column=1) NumNineBtn = Button(root,text = "9", width = 8, height = 2, command = GetNumNine) NumNineBtn.grid(row=3, column=2) NumZeroBtn = Button(root,text = "0", width = 8, height = 2, command = GetNumZero) NumZeroBtn.grid(row=3, column=3) DivisionBtn = Button(root,text = "/", width = 8, height = 2, command = GetDivision) DivisionBtn.grid(row=3, column=4) root.mainloop()
這個計算器的ui,我自己都不忍心看。
對於程式碼的一些優化:
①由於用到很多的按鈕,我們可以用for迴圈來簡化程式碼,參考程式碼如下:
from tkinter import * #建立橫條型框架 def frame(root, side): w = Frame(root) w.pack(side = side, expand = YES, fill = BOTH) return w #建立按鈕 def button(root, side, text, command = None): w = Button(root, text = text, command = command) w.pack(side = side, expand = YES, fill = BOTH) return w root =Tk() for key in ('123', '456', '789', '-0.'): KeyF =frame(root,TOP) for char in key: button(KeyF, LEFT, char) root.mainloop()
②可以用lambda表示式,來簡化程式碼:這樣可以少寫一個汙染函式,是程式碼更加簡潔
NumNineBtn = Button(root,text = "9", width = 8, height = 2, command = lambda : GetInputValue(ShowNumEntry,"9"))
NumNineBtn .grid(row=3, column=2)
//對於上述程式碼的一些疑問:
//如果將grid直接寫在後面,點選之後就會報錯:
def GetInputValue(entry, argu): entry.insert(END, argu) def GetNumOne(): GetInputValue(ShowNumEntry,"1") from tkinter import * root = Tk() ShowNumEntry = Entry(root, justify="right", font=12).grid(row=0, column=0) button = Button(root,text="測試",command=GetNumOne).grid(row=1, column=0) root.mainloop()
相關推薦
python tkinter實現簡單計算器
功能分析 基礎功能 需要有顯示區,可以使用label,text,entry 顯示按鍵0-9以及運算子 滑鼠點選按鍵時,按鍵的值或者運算結果能夠在顯示區顯示 能夠清空顯示區以備下一次運算輸入
python tkinter 實現簡單計算器2
功能完善 除法除數為0的異常處理 非數字輸入的異常處理 程式碼實現 from tkinter import * from tkinter.messagebox import showinfo class Calculator(Frame):
Python tkinter 實現簡單登陸註冊 基於B/S三層體系結構,實現用戶身份驗證
cte cursor 實現簡單 結果 pass 分享圖片 not null for 技術 Python tkinter 實現簡單登陸註冊 最終效果 開始界面 ? 註冊 登陸 ? 源碼 login.py # encoding=utf-8 f
利用tkinter實現簡單計算器功能(不使用eval函式)
利用tkinter實現簡單計算器功能(不使用eval函式) 一、思路 tkinter: 佈置主介面; 上部為數字顯示介面; 下部為數字鍵與功能鍵介面; 邏輯: 程式只考慮兩個運算元進行計算的情況,不考慮複雜情況 展示:
Python Tkinter實現的計算器
from tkinter import* from tkinter.ttk import* def frame(master): """將共同的屬性作為預設值, 以簡化Frame建立過程""" w =Frame(master) w.pack(side=TOP, expand=YES, fil
80行程式碼使用Python+tkinter實現一個計算器
閒話不說,直奔主題。建議大家跟著敲一遍程式碼,體會一下程式碼複用、字串方法的運用和動態建立元件的
Python Tkinter實現的簡單計算器
最近初次接觸Python,就用計算器來練練手吧。 from tkinter import * def GetInputValue(ShowNumEntry, Value):#用來顯示值 ShowNumEntry.insert(END,Value) def GetN
Python 藉助逆波蘭表示式(字尾表示式)實現簡單計算器
Python 藉助逆波蘭表示式(字尾表示式)實現簡單計算器 文章目錄 Python 藉助逆波蘭表示式(字尾表示式)實現簡單計算器 0. 參考資料 1. 中綴表示式轉字尾表示式 2. 字尾表示式的求值 3. Python
基於Tkinter用50行Python程式碼實現簡易計算器
Tkinter一般是python自帶的,所以程式碼不需要其他元件,本程式是在python2.7版本實現的。 主要涉及了tkinter的使用,函式定義和呼叫,匿名函式的使用,類成員函式定義等python基礎知識,適合新手學習。 程式碼如下: from Tkinter
python實現簡單計算器
import re def remove_space(formula): """去掉算式的空格""" return formula.replace(" ", "") def change_symbol(formula): """ 提取負
Struts1應用、實現簡單計算器、使用DispatchAction、顯示友好的報錯信息、使用動態Form簡化開發
實體類 ica setattr sources 建立 -s number asc rlogin 實現簡單的支持加、減、乘、除的計算器 復制一份Struts1Demo改動:Struts1Calc 方案1: Struts1Calc 創建ActionForm: CalcFor
Shell 實現簡單計算器功能
shell 計算器Shell 實現簡單計算器功能,腳本如下:[[email protected]/* */ scripts]# cat jisuan.sh #!/bin/bash print_usage(){ printf $"USAGE:$0 NUM1 {+|-|*|/} NUM2\n"
Python字典實現簡單的三級菜單
直轄市 test 什麽 bre python字典 山東 oldboy als 實現 data = { "北京":{ "昌平":{"沙河":["oldboy","test"],"天通苑":["鏈接地產","我愛我家"]}, "朝陽":{"望京
Python-Day4實現簡單的shell sed替換功能
color utf-8 ast style 實現 nes 寫入 readlines lov code: 1 f = open(‘yesterday‘,‘r‘,encoding=‘utf-8‘) 2 f2 = open(‘yesterday.bak‘,‘w‘,encod
$.ajax()實現簡單計算器
ctype clas text bmi sub javascrip val numeric put 1、html頁面 a.html <!DOCTYPE html> <html lang="en"> <head> <meta c
Python django實現簡單的郵件系統發送郵件功能
conn ive smtplib send sub 方式 fix www. obj Python django實現簡單的郵件系統發送郵件功能 本文實例講述了Python django實現簡單的郵件系統發送郵件功能。 django郵件系統 Djang
Python學習 —— 實現簡單爬蟲
發現 guid openssl 取圖 lib 列表 了解 菜鳥 頁面數據 為了加快學習python3.x於是直接看了許多有實際操作的小項目,查了許多資料後寫了這個腳本,這個腳本主要是爬取百度圖片‘東方幻想鄉‘的圖片,但發現有幾個問題: 1.圖片會重復兩次。
python+openCV實現簡單的圖片搜尋功能(一)
一、圖片搜尋引擎有三種不同的模式 1.Search by Meta-Data:元資料搜尋模式,這種和傳統的文字搜尋類似,給索引資料新增文字註釋,上傳待查詢的圖片的時候,需要附加圖片的文字描述,實際在後臺搜尋對應的文字描述,典型的有 https://www.flickr.com/ 
Python+pandas實現簡單聚類分析
Python+pandas實現簡單聚類分析 應用百度百科對聚類分析的解釋: 聚類分析指將物理或抽象物件的集合分組為由類似的物件組成的多個類的分析過程。它是一種重要的人類行為。 聚類分析的目標就是在相似的基礎上收集資料來分類。聚類源於很多領域,包括數學,電腦科學,統計學,生物學和
【python/qt】Python+Qt實現簡單的視訊監控介面
DATE: 2018.12.9 1、前言 這個介面是之前讀研時候學習QT時寫的一個簡單的介面,主要實現了人臉檢測部分的功能,比較簡單。 從今年3月份就開始寫這個視訊監控的功能,一直拖到了11月份。找工作結束後,可以好好研究一下Python和Qt以及兩者的混合程式設計了。